连接两个数据框并使用指定ID扩展该数据框

时间:2019-04-04 08:46:44

标签: pandas csv

我想将一个数据帧插入另一个具有ID为“ Time”的时间键的数据帧。怎么做?

我的数据如下:

df1
ID  Time
ID1 10:40
ID1 11:00
ID2 11:10
ID2 11:30

df2
Time    X   Y
10:40   45  50
10:50   55  55
11:00   65  60
11:10   75  65
11:20   85  70
11:30   95  75

我的预期结果如下:

ID  Time    X   Y
ID1 10:40   45  50
ID1 10:50   55  55
ID1 11:00   65  60
ID2 11:10   75  65
ID2 11:20   85  70
ID2 11:30   95  75

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在日期时间列中使用merge_asof,最后使用Series.dt.strftime将其转换为HH:MM字符串:

df1['Time'] = pd.to_datetime(df1['Time'])
df2['Time'] = pd.to_datetime(df2['Time'])

df = pd.merge_asof(df2, df1, on='Time').assign(Time = lambda x: x['Time'].dt.strftime('%H:%M'))
print (df)
    Time   X   Y   ID
0  10:40  45  50  ID1
1  10:50  55  55  ID1
2  11:00  65  60  ID1
3  11:10  75  65  ID2
4  11:20  85  70  ID2
5  11:30  95  75  ID2