Python 在Pandas中的多个列中使用NaN值
我有多个数据集,行数不同,列数相同。 我想在每个列中找到一个NaN值,例如,考虑这两个数据集:Python 在Pandas中的多个列中使用NaN值,python,pandas,nan,Python,Pandas,Nan,我有多个数据集,行数不同,列数相同。 我想在每个列中找到一个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
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)
它不能正常工作 您只需要fillna和dropna,而不需要控制流
data = data.dropna(subset=['b']).fillna(0)
把你的病情告诉医生
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
列中仍有nan值b@AlterNative您只能选择一个作为接受的答案(-:您根本不需要
'b'
键。df.fillna({'a':0})。dropna()
在我的第二个数据集上不起作用。它删除了所有行,我需要保留它们,并将a列中的行的值设置为0。@AlterNative have nice day:-)