使用Pandas解析从CSV加载的JSON字符串
使用Pandas解析从CSV加载的JSON字符串
我正在处理包含简单JSON对象(多个键值对)的CSV文件,而其他列则是普通列。这是一个例子:
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')之后,最有效的方法是如何解析和拆分stats列为其他列?
大约一个小时后,我唯一能想到的方法是:
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'])
df输出:
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