pandas获取列首个非空值时如何处理全空场景的KeyError错误
错误根因
当kst列所有值均为空时,df['kst'].first_valid_index()会返回None,你直接将None作为索引传入loc进行取值,就会触发KeyError: None。你原来的写法没有先判断索引是否存在就直接取值,所以才会报错。
修复后的代码
import pandas as pd df = pd.read_excel('./test2.xlsx') # 先获取有效索引再做判断 valid_index = df['kst'].first_valid_index() if valid_index is not None: print(df['kst'].loc[valid_index]) else: print('d')
更简洁的替代写法
你也可以直接清空列的空值后取第一个值,不用手动判断索引:
import pandas as pd df = pd.read_excel('./test2.xlsx') dropna_ser = df['kst'].dropna() print(dropna_ser.iloc[0] if not dropna_ser.empty else 'd')
内容的提问来源于stack exchange,提问作者x89
相关产品推荐
相关产品推荐

