我想在现有的 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)
导致相同的警告。
奇怪的是,如果插入的值不为空(例如,用 0 替换 pd.NaT)不会产生警告。那是一个错误吗?