gpt4 book ai didi

python - 更改 Pandas 中的特定列

转载 作者:行者123 更新时间:2023-12-04 15:23:46 26 4
gpt4 key购买 nike

我正在玩 pandas,我正在尝试用 0 填充一些 NaN 列(并保持其他列不变)。

这是我正在尝试的:

variablesToCovertToZero = ['column1', 'column2'] #just a list of columns
print('before ', df.isna().sum().sum()) #show me how many nulls
# df = df.update(df[variablesToCovertToZero].fillna(0, inplace=True)) #try 1, didn't work
df[variablesToCovertToZero].fillna(0, inplace=True) #try 2, also didn't work
print('after ', df.isna().sum().sum())

运行结果:

before  11056930
/opt/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py:4259: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
**kwargs
after 11056930

前后是一样的!但我也收到警告。在过去,警告不是问题,但我想我会添加它以防万一它是相关的。

对我做错了什么有什么建议吗?我只想对特定的列列表使用填充选项。

最佳答案

问题是在执行 df[variablesToCovertToZero] 时带有数据框子集的 inplace=True,这是引发警告而不填充 nan 的原因。如果你这样做:

df[variablesToCovertToZero] = df[variablesToCovertToZero].fillna(0)

而不是就地使用,效果很好。否则,如果您想要fillna一些cols并且仍然使用inplace,您可以创建一个列字典来填充您想要的值。

df.fillna({col:0 for col in variablesToCovertToZero }, inplace=True)

关于python - 更改 Pandas 中的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62743670/

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