我尝试合并DatetimeIndex列上的两个Pandas DataFrame。每个df包含重叠时段的不同每日测量数据,一天中每行有几列。我希望以合并在DatetimeIndex上的df结束,每行仍有一天('inner'
),以及原始两个dfs的所有度量列,但只有一列用于公共日期。只要日期是字符串,这就适用于pd.merge()
。但是当我将它们转换为日期时间时,pd.merge()
告诉我使用pd.concat()
。
df1 = pd.DataFrame(data=pd.date_range('2022-01-02','2022-01-04'), columns=['dtm'])
df1['var1'] = np.random.random(len(df1))
df2 = pd.DataFrame(data=pd.date_range('2022-01-01','2022-01-05'), columns=['dtm'])
df2['var2'] = np.random.random(len(df2))*100
print(pd.concat([df1,df2], axis=1, join='inner'))
然而,这给了我
dtm var1 dtm var2
0 2022-01-02 0.942075 2022-01-01 82.021265
1 2022-01-03 0.857628 2022-01-02 62.548033
2 2022-01-04 0.432774 2022-01-03 3.883448
例如,有两个dtm
列,并且它们的日期是偏移的,我如何告诉pd.concat()
在dtm
列上合并?
1条答案
按热度按时间z9ju0rcb1#
在两个数据框中创建
DatetimeIndex
:对于我来说,
merge
工作正常(两个DataFrame中的dtm
列均由日期时间填充):