gpt4 book ai didi

python - 如何使用 inplace = True 在选定的列上应用 pandas.DataFrame.replace?

转载 作者:行者123 更新时间:2023-11-28 22:17:50 25 4
gpt4 key购买 nike

import pandas as pd

df = pd.DataFrame({
'col1':[99,99,99],
'col2':[4,5,6],
'col3':[7,None,9]
})

col_list = ['col1','col2']
df[col_list].replace(99,0,inplace=True)

这会生成警告并保持数据框不变。

SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame

我希望能够在用户指定的列子集上应用替换方法。我还想使用 inplace = True 来避免复制数据框,因为它很大。任何关于如何实现这一点的想法都将不胜感激。

最佳答案

当您选择用 df[col_list] 替换的列时,将创建数据框的切片(副本)。副本已更新,但从未写回到原始数据框中。

您应该一次替换一列或使用嵌套字典映射:

df.replace(to_replace={'col1' : {99 : 0}, 'col2' : {99 : 0}}, 
inplace=True)

可以自动生成to_replace 的嵌套字典:

d = {col : {99:0} for col in col_list}

关于python - 如何使用 inplace = True 在选定的列上应用 pandas.DataFrame.replace?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50996864/

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