我试图基于两种因素,将熊猫/ python中的两个df组合为一个。
我想合并两个数据帧,其中df_2时间戳是列中的第一个时间戳,之后是df_1的每个后续时间戳。
因此输出将类似于
I.D | Timestamp
E4242 earliest_timestamp from df_2
E4242 next_timestamp from df_1
E4242 next_timestamp from df_1
感谢您的光临!
答案 0 :(得分:0)
如果df2每个ID仅包含一个日期,并且该日期始终是该ID的最早日期,这是真的,您能否简单地将df1和df2连接起来,然后按ID和时间戳进行排序?例如:
# Generate example data
df1 = pd.DataFrame({'id': [1, 1, 2, 3, 3, 3],
'timestamp': pd.to_datetime(['2019-01-01',
'2019-01-02',
'2019-01-15',
'2019-01-17',
'2019-02-01',
'2019-02-03'])})
df2 = pd.DataFrame({'id': [1, 2, 3],
'timestamp': pd.to_datetime(['1959-06-01',
'1989-12-01',
'1999-01-25'])})
df = pd.concat([df1, df2])
df = df.sort_values(by=['id', 'timestamp']).reset_index(drop=True)
df
id timestamp
0 1 1959-06-01
1 1 2019-01-01
2 1 2019-01-02
3 2 1989-12-01
4 2 2019-01-15
5 3 1999-01-25
6 3 2019-01-17
7 3 2019-02-01
8 3 2019-02-03