我有两个带有日期时间索引的数据框
2020-12-07 1622
2020-12-07 912
2020-12-07 503
2020-03-09 1178
2020-03-09 640
2020-03-09 382
它们将始终具有相同的长度(一周)...我需要将 df1 列添加到 df2。我尝试了几件事,但最有希望的给了我
df1 = df1.assign(bline=pd.Series(df2['num'].values))
但它给了我
2020-12-07 1622 NaN
2020-12-07 912 NaN
2020-12-07 503 NaN
如果我只是这样做:df['num2'] = df2['num'].values
,它会给我一个 SettingWithCopyWarning
...这样做的正确方法是什么?
答案 0 :(得分:1)
df['num2'] = df2['num'].values
是要走的路。它向您发出警告,因为您的 df
是另一个更大数据帧的一部分。
另一方面
df1 = df1.assign(bline=pd.Series(df2['num'].values))
不会向您发出警告,因为 assign
起作用并返回切片的副本。但是 pd.Series(df2['num'].values)
的索引与 df1
的索引不同,因此您得到所有 NaN
。试试:
df1 = df1.assign(bline=df2['num'].values)