Pandas:更改列数据类型将生成警告

2024-04-23 06:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下pandas数据帧:

df = pd.DataFrame({'one': ['Baseline', 5, 6], 'two': [10, 10, 10]})
print(df)
print(df.dtypes)
#  one    object
#  two     int64

我想收集df.one != 'Baseline'中的所有行,然后将这个新数据帧中的one列转换为int数据类型。我假设下面的方法可以正常工作,但是当我试图将int转换为one时,我收到了SettingWithCopyWarning的投诉:

^{pr2}$

代码似乎可以正常工作(见下文),但我想知道如何避免此警告(如果我要使用其他方法,等等)。我跟随this question更改特定列的数据类型。我也尝试了df_sub.loc[:, 'one'] = df_sub['one'].astype(int)df_sub.loc[:, 'one'] = df_sub.loc[:, 'one'].astype(int),但我得到了相同的错误。在

print(df_sub.dtypes)
#  one     int64
#  two     int64

Tags: 数据方法pandasdfonelocintpd
1条回答
网友
1楼 · 发布于 2024-04-23 06:20:32

为了避免该警告,请复制数据帧

df_sub = df[df['one'] != 'Baseline'].copy() # A deep copy of your dataframe otherwise it'll point to an existing one in memory.

相关问题 更多 >