Анализ строки JSON, загруженной из CSV, с помощью PandasPython

Программы на Python
Anonymous
Анализ строки JSON, загруженной из CSV, с помощью Pandas

Сообщение Anonymous »

Я работаю с файлами CSV, в которых некоторые столбцы имеют простой объект json (несколько пар ключ-значение), а другие столбцы являются обычными. Вот пример:

name,dob,stats
john smith,1/1/1980,"{""eye_color"": ""brown"", ""height"": 160, ""weight"": 76}"
dave jones,2/2/1981,"{""eye_color"": ""blue"", ""height"": 170, ""weight"": 85}"
bob roberts,3/3/1982,"{""eye_color"": ""green"", ""height"": 180, ""weight"": 94}"


После использования df = pandas.read_csv('file.csv'), какой наиболее эффективный способ анализа и разделения столбца статистики в дополнительные столбцы?

Примерно через час единственное, что я смог придумать, это:

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))


Похоже, я делаю это неправильно, и это довольно большая работа, учитывая, что мне придется регулярно делать это с тремя столбцами.
Желаемый результат — объект фрейма данных ниже. Добавлены следующие строки кода, чтобы добраться туда моим (дерьмовым) способом:

df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
name dob eye_color height weight
0 john smith 1/1/1980 brown 160 76
1 dave jones 2/2/1981 blue 170 85
2 bob roberts 3/3/1982 green 180 94


Подробнее здесь: https://stackoverflow.com/questions/206 ... ing-pandas

Вернуться в «Python»