您好,我有一个名为 Final_1 的系列列表,其中包含 2000 多个项目,我希望将其连接到整个数据帧中,其中数据帧的索引具有所有日期索引中最早和最新的索引。 Final_1 看起来像这样
Dates Values
0 2020-04-13 529.0
1 2020-04-20 465.0
2 2020-04-27 408.0
3 2020-05-04 374.0
4 2020-05-11 339.0
.. ... ...
Dates Values
0 2020-03-30 0.09
1 2020-04-06 0.05
2 2020-04-13 0.05
3 2020-04-20 0.05
4 2020-04-27 0.04
.....
成品看起来像......
我尝试用 pd.concat(final, axis=1, join='outer') 连接列表,我得到的就是这个
这不是我想要的...
请帮忙?
df1 = pd.DataFrame({
'Dates': ['2020-04-13', '2020-04-20', '2020-04-27', '2020-05-04', '2020-05-11'],
'Values': [529.0, 465.0, 408.0, 374.0, 339.0]
})
df2 = pd.DataFrame({
'Dates': ['2020-03-30', '2020-04-06', '2020-04-13', '2020-04-20', '2020-04-27'],
'Values': [0.09, 0.05, 0.05, 0.05, 0.04]
})
# Convert 'Dates' column to datetime for proper merging and sorting
df1['Dates'] = pd.to_datetime(df1['Dates'])
df2['Dates'] = pd.to_datetime(df2['Dates'])
# Full outer join
combined_df = pd.merge(df1, df2, on='Dates', how='outer', suffixes=('_left', '_right'))
# Sort df and rename cols
combined_df.sort_values(by='Dates', inplace=True)
combined_df.rename(columns={'Values_left': 'Values', 'Values_right': 'NA'}, inplace=True)
# Fill NaN with 'NA' strings
combined_df['Values'] = combined_df['Values'].fillna('NA')
combined_df['NA'] = combined_df['NA'].fillna('NA')