gpt4 book ai didi

python - 根据某些列中存在的值删除 Pandas 行

转载 作者:行者123 更新时间:2023-12-05 05:37:23 25 4
gpt4 key购买 nike

我有一个像这样的 df:

A B C
f s x
a b c
n
p l k
i
s j p

现在,我想删除所有在 A 列中具有值但在 df 的其余列中为空的记录,我怎样才能实现这样的目标?预期的结果将是一个像这样的 df:

A B C
f s x
a b c
p l k
s j p

@编辑:这为我解决了这个问题:

columns = list(df.columns)[1:]
df = df[~df[columns].isnull().all(1)]

最佳答案

使用DataFrame.replace为了将空白设置为 NaN,您可以使用 DataFrame.dropna 删除带有 NaN 的行:

df.replace(r'^\s*$', np.nan, regex=True).dropna()

或者如果您只想在 A 列不是 NaN 时删除

df.replace(r'^\s*$', np.nan, regex=True)
.loc[lambda x: ~(x['A'].notna()
& x.filter(regex='!A').isna().all(axis=1))]
#morgan equivalent
#df.replace(r'^\s*$', np.nan, regex=True)
# .loc[lambda x: x['A'].isna()
# | x.filter(regex='!A').notna().any(axis=1)]

关于python - 根据某些列中存在的值删除 Pandas 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73133796/

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