【发布时间】:2018-05-02 11:29:53
【问题描述】:
我想在现有的 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)不会产生警告。这是一个错误吗?
【问题讨论】:
标签: python pandas dataframe chained-assignment