gpt4 book ai didi

python - 如何在不生成SettingWithCopyWarning的情况下将列插入到DataFrame中

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:55 26 4
gpt4 key购买 nike

我想将一列插入到现有的 DataFrame 中。理想情况下不复制现有数据。无论我尝试什么,如果插入的数据包含空值,稍后对生成的 DataFrame 的分配都会生成SettingWithCopyWarning。

import pandas as pd

df = pd.DataFrame(data={'a': [1]})
df = df.assign(b=pd.Series(data=pd.NaT, index=df.index))
df['a'].iloc[0] = 5

assign 替换为

df['b'] = pd.Series(data=pd.NaT, index=df.index)
df.insert(column='b', loc=0, value=pd.NaT)

导致相同的警告。

奇怪的是,如果插入的值不为空(将 pd.NaT 替换为 0),则不会生成警告。这是一个错误吗?

最佳答案

您的问题似乎与 df['a'].iloc[0] = 5 有关,您在其中使用 chained assignment 。试试这个:

df.at[0, 'a'] = 5
# Or: df.loc[0, 'a'] = 5, but `.at` is preferred when assigning scalar

关于python - 如何在不生成SettingWithCopyWarning的情况下将列插入到DataFrame中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371801/

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