gpt4 book ai didi

python - 如果单元格包含 '-', Pandas 更新数据帧值

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:54 24 4
gpt4 key购买 nike

我有一个 pandas 数据框,它有 46 列和 6 行。

Index    Column1    Column2    Column3   Column4      ... # Cant type all 46 columns.
2012 5626 fooo - barrr
2013 5655h booo - barr
2014 5626d zooo - -
LTM 56 gooo greed -

有没有办法让我遍历这个 Dataframe 并将所有 - 值更新为 0null 值?

我试过:

for zzz in df.columns:  # since df.columns will return me the names of the columns
if df_final[zzz].any() == '-':
df_final[zzz] = 0
print(df_final)

然而,这只会按原样打印出所有内容。它不会将 - 转换为 0/null

最佳答案

使用replace将该特定值替换为另一个值:

In [71]:
df.replace('-',0, inplace=True)
df

Out[71]:
Index Column1 Column2 Column3 Column4
0 2012 5626 fooo 0 barrr
1 2013 5655h booo 0 barr
2 2014 5626d zooo 0 0
3 LTM 56 gooo greed 0

你的代码即使它能工作也是错误的语义:

for zzz in df.columns: 
if df_final[zzz].any() == '-':
df_final[zzz] = 0
print(df_final)

这:df_final[zzz] = 0 会更新整个列

如果您的代码是:

for zzz in df.columns: 
if df_final[zzz].any() == '-':
df_final[zzz] = df_final[zzz].replace('-',0)
print(df_final)

那么这只会替换满足条件的行,您也可以这样做:

df.apply(lambda x: x.replace('-',0))

更紧凑的方法

编辑如果你想用NaN替换然后传递np.NaN而不是上面的0

关于python - 如果单元格包含 '-', Pandas 更新数据帧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846642/

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