Pandas объединяет 2 кадра данных, когда один df создается из результата groupby третьего df - PullRequest
0 голосов
/ 04 мая 2018

Мне нужно объединить 2 df, A и B, где B генерируется на основе groupby другого df, то есть C,

B = pd.DataFrame(C.groupby('object_id').apply(
lambda x: x[['number', 'date', 'user_id', 'change']].to_dict('records')))

B.columns = ['change_history']

B['num_changes'] = B['change_history'].apply(lambda x: len(x))

# reset index to default integer index to get object_id for B
B = B.reset_index()
data = A.merge(B, how='left', on='object_id')

Мне интересно, есть ли лучший способ сделать это с точки зрения использования памяти и эффективности использования времени.

df C
object_id     number          date       user_id     change
1000001       1234          2017-01-01   ABC         6666661111
1000001       04447         2018-01-01   ABC         9999990000
1000002       <AAA>0000001  2018-02-02   DEF         3333339999
1000002       <AAA>0999999  2018-03-03   DEF         4444448888
1000003       980000        2018-04-05   DEF         5555550000
1000004       970000        2018-05-06   XYZ         3200000000

df A
object_id    name    
1000001      company_a
1000001      company_a
1000002      company_b
1000002      company_b
1000003      company_c
1000004      company_d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...