我发现在将基于相同时间段的系列添加到现有数据帧时,它会被导入为NaN。数据框有一个字段列,但我不明白为什么它应该改变任何东西。要查看我的代码的步骤,您可以查看附加的图像。希望有人能帮忙!
Illustration showing how the dataframe that the series is inserted into and how it gets read as NaN
答案 0 :(得分:0)
假设字段索引列中的值为"实际"对于每一行,解决方案可能如下:
test.reset_index().set_index('Date').assign(m1=m1)
该解决方案有效,但可以缩短时间:
days = pd.to_datetime(['2018-01-31', '2018-02-28', '2018-03-31'])
df = pd.DataFrame({'Field': ['Actual']*3, 'Date': days, 'Val':[1, 2, 3]}).set_index(['Field', 'Date'])
m1 = pd.Series([0, 2, 4], index=days)
df.reset_index(level='Field').assign(m1=m1)
Field Val m1
Date
2018-01-31 Actual 1 0
2018-02-28 Actual 2 2
2018-03-31 Actual 3 4
不过,这将是一个不错的mcve