我遇到了一个奇怪的问题。我相信这背后有一个逻辑原因。
我有一个名为alloptions的数据框,它有4列,minage1、minage2、minage3和minage4,它们都是float64类型。缺失值的数量从minage1到minage4逐渐增加。
我创建了第五列,它取这四列中的最小值:
alloptions['minage']=alloptions.apply(lambda x: min([x['minage1'],x['minage2'],x['minage3'],x['minage4']]),axis=1)
这似乎是有效的,直到我发现在第47行有问题。
minage1 minage2 minage3 minage4 minage
47 NaN 56.0 NaN NaN NaN
使用 .loc,我将行数据隔离:
In [10]:
print alloptions.loc[47,:]
print alloptions.loc[47,:].dtypes
I get
minage1 NaN
minage2 56
minage3 NaN
minage4 NaN
minage NaN
Name: 47, dtype: float64
float64
我有些困惑为什么这个函数没有识别出56。
在此提前感谢您的帮助。