Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Pandas中的多个列中使用NaN值_Python_Pandas_Nan - Fatal编程技术网

Python 在Pandas中的多个列中使用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

我有多个数据集,行数不同,列数相同。 我想在每个列中找到一个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:-)