如果没有找到 null 值,则打印一个字符串

print a string if no null value is found

我使用它找到了列的第一个非值并且它工作正常

first_non = df['kst'].loc[df['kst'].first_valid_index()]
print(first_non)

这在列中存在非空值时有效。但是,如果该列中不存在非空值,则会引发错误 KeyError: None.

如何在 if else 语句中使用它?因此,如果存在非空值,我想打印它。如果没有,我想打印其他东西:

df = pd.read_excel('./test2.xlsx')
if (df['kst'].loc[df['kst'].first_valid_index()]):
    print (df['kst'].loc[df['kst'].first_valid_index()])
else:
    print('d')

目前,这会引发错误:

-->if (df['kst'].loc[df['kst'].first_valid_index()]):
...
KeyError: None

标准方式是 try/catch 正如 Kenny 评论的那样:

try:
   print(df['kst'].loc[df['kst'].first_valid_index()])
except:
   print("no nan values")

如果您坚持if/else,请先检查有效索引:

valid_idx = df['kst'].first_valid_index()
print(df.loc[valid_idx, 'kst'] if valid_idx is not None else "no nan values")

您可以试试这个作为替代方案。

df = pd.read_excel('./test2.xlsx')
try:
    print (df['kst'].loc[df['kst'].first_valid_index()])
except:
    print('No value is found')