< tr>
transaction_id
total_amount
дата
платежи
ledger_account_bookings
4308
645,83
30-8-2024
[]
[]
4254
291,67
2-7-2024
[]
[{'ledger_id': '4265', 'сумма' : '291,67'}]
4128
847
14 февраля 2024 г.
[{'pay_id': '4128', 'amount': '847.0'}]
[]
4248
4286,98
25 июня 2024 г.
[{'Payment_id': '4261', 'amount': '400.0'},
{'Payment_id ': '4262', 'сумма': '11.0'},
{'Payment_id': '4263', 'Amount': '1668.51'},
{'Payment_id': '4264', 'сумма': '1868,54'},
{'платеж_id': '4265', 'сумма': '20,91'},
{'платеж_ид': '4266', 'сумма': '2,21 '},
{'pay_id': '4267', 'amount': '309.62'}]
[{'ledger_id': '4265', 'amount': '6,19'}]
4192
6130,22
24 апреля 2024 г.
[{'pay_id': '4193', 'amount': '9,68'}]
[{'ledger_id': '4222', 'amount':'2106.0'},
{'ledger_id': '4222','amount': '4014.54'}]
4090
1158,98
25- 1-2024
[{'id': '4110','amount': '16.22'},
{'id': '4111', 'amount': '84.0'},
{'id': '4112', 'сумма': '41,99'},
{'id': '4113, 'сумма': '9,11',}
{'id': '4114', 'amount': '10.0'},
{'id': '4115', 'amount': '997.16'}]
[{'ledger_id': '4231', 'amount': '-0.32'},
{'ledger_id': '4231', 'amount': '-0.18'}]
Я хочу, чтобы каждый дикт в одном из столбцов платил илиledger_account_bookings становится строкой в моем фрейме данных. поэтому я могу использовать переменную sum в качестве поля в моем фрейме данных (как вы можете видеть, оно разное для каждой записи). Ожидаемый результат будет выглядеть примерно так:
Я знаю, как добиться этого для одного столбца, например, используя следующий код:
Код: Выделить всё
df_explode = df_financial_mutations.explode(['payments'])
#Normalize the json column into separate columns
df_normalized = json_normalize(df_explode['payments'])
#Add prefix to the columns that were 'exploded'
df_normalized = df_normalized.add_prefix('payments_')
Как мне это сделать? решить такую задачу, когда мне нужно взорвать сразу две колонны? Я видел эффективный способ разложить (развернуть) несколько столбцов списка в DataFrame pandas, но, к сожалению, списки платежей иledger_account_bookings могут иметь разный размер, а также могут быть динамическими (например, это возможно иметь 0–5 платежей и 0–5 Ledger_account_bookings, фиксированного значения нет)
Будем очень признательны за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/789 ... -dataframe