含NaN值的Pandas按行求最小值不符合预期,求代码修正
Pandas行最小值计算保留NaN的修正方案
你遇到的问题是因为pd.DataFrame.min()默认开启了skipna=True,会自动忽略NaN值,导致含NaN的行仍能计算出非NaN的最小值。要让存在NaN的行结果返回NaN,只需添加skipna=False参数:
import pandas as pd import numpy as np # 原代码使用了np.nan,需导入numpy库 dat1 = pd.DataFrame({'col1' : [1,2,3,4], 'col2' : [-3, np.nan, 4, 4]}) # 设置skipna=False,保留NaN的行结果为NaN dat1.min(axis=1, numeric_only=True, skipna=False)
执行后输出结果:
0 -3.0 1 NaN 2 3.0 3 4.0 dtype: float64
此时第二行因包含NaN,结果符合你的预期为NaN。
内容的提问来源于stack exchange,提问作者Bogaso
相关产品推荐
相关产品推荐

