我有一个 df,它可能包含第一行中两列的 nan
值。如果为真,我想用 0
替换这些值。但是,如果那里有整数,则保持原样。所以这个 df 应该用 0
替换 X,Y
。
df = pd.DataFrame({
'Code1' : ['A','A','B','B','C','C'],
'Code2' : [np.nan,np.nan,5,np.nan,np.nan,10],
'X' : [np.nan,np.nan,1,np.nan,np.nan,3],
'Y' : [np.nan,np.nan,2,np.nan,np.nan,4],
})
1)
if df.loc[0,'X':'Y'] == np.nan:
df.loc[:0, 'X':'Y'] = 0
2)
if df.loc[[0],['X','Y']].isnull():
df.loc[:0, 'X':'Y'] = 0
else:
pass
但是这个例子 df 不应该替换为 0,因为存在整数:
df1 = pd.DataFrame({
'Code1' : ['A','A','B','B','C','C'],
'Code2' : [np.nan,np.nan,5,np.nan,np.nan,10],
'X' : [5,np.nan,1,np.nan,np.nan,3],
'Y' : [6,np.nan,2,np.nan,np.nan,4],
})
最佳答案
df.loc[0, ['X', 'Y']] = df.loc[0, ['X', 'Y']].fillna(0)
>>>> df
Code1 Code2 X Y
0 A NaN 0.0 0.0
1 A NaN NaN NaN
2 B 5.0 1.0 2.0
3 B NaN NaN NaN
4 C NaN NaN NaN
5 C 10.0 3.0 4.0
关于python - 为第一行中的多列插入 0 的逻辑 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927294/