Соедините два фрейма данных и раскройте фрейм данных, назначив идентификатор - PullRequest
1 голос
/ 04 апреля 2019

Я хочу вставить фрейм данных в другой фрейм с ключом времени с идентификатором, который следует за временем.Как это сделать?

мои данные выглядят так:

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 Ответ

1 голос
/ 04 апреля 2019

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...