【发布时间】:2018-06-23 14:43:38
【问题描述】:
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 来避免复制数据框,因为它很大。任何关于如何实现这一点的想法都将不胜感激。
【问题讨论】:
-
如果您一次循环并替换一列,它似乎可以工作,但必须有更好的选择?
-
是的,但我有 2k 列,所以我希望有更快的方法。另外,我对 dropna 函数也有同样的问题。因为我想使用 'thresh' 参数,所以不能一次将其应用于一列。