У меня есть очень большой набор данных в формате CSV, в котором один столбец является строкой JSON.Я хочу прочитать эту информацию в плоский кадр данных Pandas.Как я могу добиться этого эффективно?
Введите CSV:
col1,col2,col3,col4
1,Programming,"{""col3_1"":null,""col3_2"":""Java""}",11
2,Sport,"{""col3_1"":null,""col3_2"":""Soccer""}",22
3,Food,"{""col3_1"":null,""col3_2"":""Pizza""}",33
Ожидаемый фрейм данных:
+---------------------------------------------------------------+
| col1 | col2 | col3_1 | col3_2 | col4 |
+---------------------------------------------------------------+
| 1 | Programming | None | Java | 11 |
| 2 | Sport | None | Soccer | 22 |
| 3 | Food | None | Pizza | 33 |
+---------------------------------------------------------------+
В настоящее время я могу получить ожидаемый результат, используя следующий код.Я просто хочу знать, есть ли более эффективный способ добиться того же.
import json
import pandas
dataset = pandas.read_csv('/dataset.csv')
dataset['col3'] = dataset['col3'].apply(json.loads)
dataset['col3_1'] = dataset['col3'].apply(lambda row: row['col3_1'])
dataset['col3_2'] = dataset['col3'].apply(lambda row: row['col3_2'])
dataset = dataset.drop(columns=['col3'])