gpt4 book ai didi

python - Pandas 数据帧 : SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

转载 作者:太空狗 更新时间:2023-10-29 22:05:22 25 4
gpt4 key购买 nike

<分区>

我知道有很多关于此警告的帖子,但我找不到解决我的情况的方法。这是我的代码:

df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int)
#df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int).copy()
#df.loc[:, 'my_col'] = df['my_col'].astype(int)

它产生警告:

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead

即使我按照建议更改了代码,我仍然收到此警告?我需要做的就是转换一列的数据类型。

**备注:** 最初该列是带一位小数的浮点型(例如:4711.0)。因此,我将其更改为整数 (4711),然后更改为字符串 ('4711') - 只是为了删除小数点。

感谢您的帮助!

更新:警告是对之前完成的原始数据过滤的副作用。我缺少 DataFrame.copy()。改用副本,问题就解决了!

df = df[df['my_col'].notnull()].copy()
df.loc[:, 'my_col'] = df['my_col'].astype(int).astype(str)
#df['my_col'] = df['my_col'].astype(int).astype(str) # works too!

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