Python Превратить столбец DF из json в отдельный DF
Всем привет, в файле CSV один из столбцов записан в формате jsonl, подскажите пожалуйста, как превратить его в удобоваримый формат.
Пример:
| date | json |
|---|---|
| 1 | {"ad_type":"banner","placement":"a","view_index":1,} |
| 2 | {"ad_type":"banner","placement":"b","view_index":1,} |
Нужно:
| date | ad_type | placment | view_index |
|---|---|---|---|
| 1 | banner | a | 1 |
| 2 | banner | b | 1 |
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
data.csv
date;json
1;{"ad_type":"banner","placement":"a","view_index":1,}
2;{"ad_type":"banner","placement":"a","view_index":1,}
import pandas as pd
import json
df = pd.read_csv('data.csv', delimiter=';')
result = df.join(
pd.DataFrame(
map(
json.loads,
map(
# Не должно тут в json быть запятой
# поэтому если она там у вас действительно есть
# нужно ее убрать
lambda x: x.replace(',}', '}'),
df.pop('json').iloc
)
)
)
)
Ну или даже вот так посимпатишней будет
import pandas as pd
import json
df = pd.read_csv('data.csv', delimiter=';')
result = df.join(
pd.json_normalize(
df.pop('json').apply(
str.replace, args=(',}', '}')
).apply(
json.loads
)
)
)
