gpt4 book ai didi

python - 删除 nan 行,除非单独列中的字符串值 - Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:31 25 4
gpt4 key购买 nike

我想删除包含 NaN 值的行,除非单独的列包含特定字符串。使用下面的 df,如果 Code2, Code3 中的 NaN 除非字符串 A 在 Code1 中,我想删除行>.

df = pd.DataFrame({   
'Code1' : ['A','A','B','B','C','C'],
'Code2' : ['B',np.nan,'A','B',np.nan,'B'],
'Code3' : ['C',np.nan,'C','C',np.nan,'A'],
})

def dropna(df, col):

if col == np.nan:
df = df.dropna()

return df

df = dropna(df, df['Code2'])

预期输出:

  Code1 Code2 Code3
0 A B C
1 A NaN NaN
2 B A C
3 B B C
4 C B A

最佳答案

使用DataFrame.notna + DataFrame.all性能boolean indexing :

new_df=df[df.Code1.eq('A')|df.notna().all(axis=1)]
print(new_df)

Code1 Code2 Code3
0 A B C
1 A NaN NaN
2 B A C
3 B B C
5 C B A

关于python - 删除 nan 行,除非单独列中的字符串值 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58847405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com