Pandas - 如何在返回行时排除空白单元格

Pandas - How to exclude blank cells when returning a row

我刚开始使用 python 和 pandas,想搜索一个数据框和 return 基于药物名称的一行,return 搜索所有非空白的列单元格。

我有这个:

import pandas as pd
safety = pd.read_excel("safety.xlsx")
searchterm = input("Enter drug name...")
print (safety.loc[safety['Drug_name'] == searchterm])

这将 return 药物和所有列,甚至是空白列。

例如,每一行是一种药物,每一列是一个标准,每种药物可能有一些标准的信息,但不是全部。

如何打印药物行,不包括空白列单元格?

您可以在行上链接过滤器:

print(safety.loc[safety['Drug_name'] == searchterm][lambda x: x != ''])

或者如果您只需要删除 NA,请使用 dropna:

print(safety.loc[safety['Drug_name'] == searchterm].dropna())

使用链式过滤器,您还可以删除空字符串和 NA:

print(safety.loc[safety['Drug_name'] == searchterm][lambda x: (x != '') & x.notnull()])