У меня есть df_in
, где один из столбцов имеет значение list
из lists
из dicts
:
df_in = pd.DataFrame({
'A': [1, 2, 3],
'B': [
[{'B1': 1, 'B2': 2, 'B3': 3}, {'B1': 4, 'B2': 5, 'B3': 6}, {'B1': 7, 'B2': 8, 'B3': 9}],
[{'B1': 10, 'B2': 11, 'B3': 12}],
[{'B1': 13, 'B2': 14, 'B3': 15}, {'B1': 16, 'B2': 17, 'B3': 18}]
],
'C': ['a', 'b', 'c']
})
df_in
A B C
0 1 [{'B1': 1, 'B2': 2, 'B3': 3}, {'B1': 4, 'B2': ... a
1 2 [{'B1': 10, 'B2': 11, 'B3': 12}] b
2 3 [{'B1': 13, 'B2': 14, 'B3': 15}, {'B1': 16, 'B... c
Что я хочу достичь, так это общий подход к распаковке B
так что (1) каждый уникальный ключ (B1
, B2
и B3
в этом случае) помещается в столбец. И (2) складывать множественные списки в каждом ряду в качестве новых наблюдений. Я думаю, что выходной пример объясняет это лучше всего:
df_out = pd.DataFrame({
'A': [1, 1, 1, 2, 3, 3],
'B1': [1, 4, 7, 10, 13, 16],
'B2': [2, 5, 8, 11, 14, 17],
'B3': [3, 6, 9, 12, 15, 18],
'C': ['a', 'a', 'a', 'b', 'c', 'c']
})
df_out
A B1 B2 B3 C
0 1 1 2 3 a
1 1 4 5 6 a
2 1 7 8 9 a
3 2 10 11 12 b
4 3 13 14 15 c
5 3 16 17 18 c
Есть идеи?