这是我的第一个数据帧div
,
df1
现在我想添加7月21日,它位于另一个数据帧 Open High Low Close
Date
2018-07-16 2797.360107 2801.189941 2793.389893 2798.429932
2018-07-17 2789.340088 2814.189941 2789.239990 2809.550049
2018-07-18 2811.350098 2816.760010 2805.889893 2815.620117
2018-07-19 2809.370117 2812.050049 2799.770020 2804.489990
2018-07-20 2804.550049 2809.699951 2800.010010 2801.830078
中,例如,
df2
现在我应该如何添加 Date Prediction
0 2018-07-25 2111.111
作为2018-07-21
索引,并且与之对应的数据对于df1
列应该为df2['Prediction']
,否则其他列可以为0。
所以最终的df应该是这样的,
Close
答案 0 :(得分:1)
只需添加另一行:
df.loc['2018-07-25', 'Close'] = 2111.111
在其他列中,您将看到大量关于NaN的信息。您可以根据需要用0填充它们:
df.fillna(0, inplace=True)
答案 1 :(得分:0)
pd.concat
您可以使用pd.concat
,只需将df2
列重命名以匹配df1
中所需的列:
new_df = (pd.concat([df1,
df2.set_index('Date')
.rename(columns={'Prediction':'Close'})])
.fillna(0)
[df.columns])
>>> new_df
Open High Low Close
Date
2018-07-16 2797.360107 2801.189941 2793.389893 2798.429932
2018-07-17 2789.340088 2814.189941 2789.239990 2809.550049
2018-07-18 2811.350098 2816.760010 2805.889893 2815.620117
2018-07-19 2809.370117 2812.050049 2799.770020 2804.489990
2018-07-20 2804.550049 2809.699951 2800.010010 2801.830078
2018-07-25 0.000000 0.000000 0.000000 2111.111000
merge
或者使用merge
进行外部合并。您仍然需要更改df2
中的列名称以匹配您希望列结束的位置
new_df = (df1.reset_index()
.merge(df2.rename(columns={'Prediction':'Close'}),
how='outer')
.fillna(0)
.set_index('Date'))
>>> new_df
Open High Low Close
Date
2018-07-16 2797.360107 2801.189941 2793.389893 2798.429932
2018-07-17 2789.340088 2814.189941 2789.239990 2809.550049
2018-07-18 2811.350098 2816.760010 2805.889893 2815.620117
2018-07-19 2809.370117 2812.050049 2799.770020 2804.489990
2018-07-20 2804.550049 2809.699951 2800.010010 2801.830078
2018-07-25 0.000000 0.000000 0.000000 2111.111000