【发布时间】:2019-06-07 09:35:25
【问题描述】:
我有一个带有范围索引但没有数据的数据框,在实际数据中,索引是一个时间范围。
例如
df_main = pd.DataFrame(index = pd.RangeIndex(0,15,1))
见图1
我有几个不同列和索引的数据框,我只想根据索引将它们加入主数据框:
df1 = pd.DataFrame({'value': [1, 2, 3, 5]}, index = pd.RangeIndex(0,4,1))
df2 = pd.DataFrame({'value': [5, 6, 7, 8]}, index = pd.RangeIndex(4,8,1))
df3 = pd.DataFrame({'value2': [9, 8, 7, 6]}, index = pd.RangeIndex(0,4,1))
df4 = pd.DataFrame({'value': [1, 2],'value2': [3, 4],'value3': [5, 6]}, index = pd.RangeIndex(10,12,1))
见图2,3,4,5
我尝试过 concat:
display(pd.concat([df_main,df1,df2,df3,df4]))
这给了我你在图 6 中看到的不需要的输出。
我也尝试过加入,结果出现我不理解的错误:
ValueError: Indexes have overlapping values: Index(['value', 'value2'], dtype='object')
我想要的是您在 Fig7 中看到的输出。
【问题讨论】:
-
试试 pandas merge 方法
标签: python pandas dataframe join