从时间索引数据帧上的第二个 Pandas 数据帧添加一个系列

时间:2020-12-22 15:23:58

标签: python pandas

我有两个带有日期时间索引的数据框

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...这样做的正确方法是什么?

1 个答案:

答案 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)