【发布时间】:2016-02-17 02:18:30
【问题描述】:
在以下情况下,我不断收到主题中的警告:
第 1 步:
df.rename(columns={'one':'one_a'}, inplace=True)
第 2 步:
df.drop(['one', 'two', 'three'], axis=1, inplace=True)
我该如何解决?
【问题讨论】:
标签: pandas
在以下情况下,我不断收到主题中的警告:
第 1 步:
df.rename(columns={'one':'one_a'}, inplace=True)
第 2 步:
df.drop(['one', 'two', 'three'], axis=1, inplace=True)
我该如何解决?
【问题讨论】:
标签: pandas
最简单的解决方法(可能是良好的编程习惯)是不进行就地操作,例如
df2 = df.rename(columns={'one':'one_a'})
【讨论】:
df.columns。基本上,df.columns = ['list', 'of', 'new', 'names']。而对于df.drop,最好写成df = df.loc[:,['columns', 'to', 'keep']].copy()
我遇到了类似的问题并解决了以下问题:
new_df = df.copy()
new_df.rename(columns={'one':'one_a'}, inplace=True)
new_df.drop(['one', 'two', 'three'], axis=1, inplace=True)
或者你可以这样做
df.is_copy = False
您可能正在使用原始 DF 的副本(例如:在此之前您正在操作您的 DF),这就是您收到警告的原因。更多关于副本:
【讨论】:
.copy()标记到我的操作结束
一种解决方法是删除 inplace=True,然后使用:
df = df.drop(['one', 'two', 'three'], axis=1)
【讨论】: