我有多个不同行数和相同列数的数据集。 我想在每列中找到Nan值,例如考虑这两个数据集:
dataset1 : dataset2:
a b a b
1 10 2 11
2 9 3 12
3 8 4 13
4 nan nan 14
5 nan nan 15
6 nan nan 16
我想在数据集a和b中找到一个nan值: 如果它出现在列b中,则删除所有具有nan值的行。如果它出现在a列中,则用0填充该值。
这是我的代码段:
a=pd.notnull(data['a'].values.any())
b= pd.notnull((data[b'].values.any()))
if a:
data = data.dropna(subset=['a'])
if b:
data[['a']] = data[['a']].fillna(value=0)
无法正常工作。
答案 0 :(得分:3)
你只需要没有控制流的fillna和dropna
data = data.dropna(subset=['b']).fillna(0)
答案 1 :(得分:2)
将你的病情传递给词典
df=df.fillna({'a':0,'b':np.nan}).dropna()
你这里不需要'b'
df=df.fillna({'a':0}).dropna()
编辑:
df.fillna({'a':0}).dropna()
Out[1319]:
a b
0 2.0 11
1 3.0 12
2 4.0 13
3 0.0 14
4 0.0 15
5 0.0 16