У меня есть фрейм данных в форме:
id date area1 area2
01 20181010 {'a': 10, 'b': 15} {'a': 20, 'c': 13}
01 20181010 {'c': 17} {'b': 12}
02 20180506 {'a': 2, 'b': 3} {'c': 4}
02 20180506 Nan {'a': 18}
Я хотел бы сгруппировать все строки с совпадающими 'id' и 'date', объединяя словари 'area1' и 'area2'.Это означает, что я хотел бы получить:
id date area1 area2
01 20181010 {'a': 10, 'b': 15, 'c': 17} {'a': 20, 'c': 13, 'b': 12}
02 20180506 {'a': 2, 'b': 3} {'c': 4, 'a': 18}
Сначала я пытался что-то вроде:
merged_df = df.groupby(["id", "date"],as_index=False).agg({'area1':'first', 'area2': 'first'})
Очевидно, что это только первый диктант area1 и area2.Но если я правильно понимаю, что можно передать функцию в agg, можно ли будет таким образом объединить словари?Я просто не могу сказать, чтобы он взял следующий дикт и объединил его (учитывая, что он может не существовать и быть наном).
Большое спасибо!
Ааатакже было бы здорово, если бы решение не было супер медленным, так как я должен сделать это для большого набора данных: /