Python 未正确设置列
我有以下python程序Python 未正确设置列,python,numpy,pandas,scipy,Python,Numpy,Pandas,Scipy,我有以下python程序 # input import pandas as pd import numpy as np data = pd.DataFrame({'a':pd.Series([1.,2.,3.]), 'b':pd.Series([4.,np.nan,6.])}) 这里的数据是: In: print data a b 0 1 4 1 2 NaN 2 3 6 现在我需要一个isnull列,指示该行是否有nan: # create data data['i
# input
import pandas as pd
import numpy as np
data = pd.DataFrame({'a':pd.Series([1.,2.,3.]), 'b':pd.Series([4.,np.nan,6.])})
这里的数据是:
In: print data
a b
0 1 4
1 2 NaN
2 3 6
现在我需要一个isnull
列,指示该行是否有nan
:
# create data
data['isnull'] = np.zeros(len(data))
data['isnull'][pd.isnull(data).any(axis=1)] = 1
输出不正确(第二个应为1):
但是,如果我再次执行确切的命令,输出将是正确的:
data['isnull'][pd.isnull(data).any(axis=1)] = 1
print data
a b isnull
0 1 4 0
1 2 NaN 1
2 3 6 0
这是熊猫的虫子还是我遗漏了什么
我的python版本是2.7.6
。熊猫是0.12.0
。numpy是1.8.0
您使用的是链式索引,在pandas
中无法给出可靠的结果。我会这样做:
data['isnull'] = pd.isnull(data).any(axis=1).astype(int)
print data
a b isnull
0 1 4 0
1 2 NaN 1
2 3 6 0
有关链式索引问题的更多信息,请参见此处:
data['isnull'] = pd.isnull(data).any(axis=1).astype(int)
print data
a b isnull
0 1 4 0
1 2 NaN 1
2 3 6 0