gpt4 book ai didi

python - 解析使用 Pandas 从 CSV 加载的 JSON 字符串

转载 作者:IT老高 更新时间:2023-10-28 22:17:42 26 4
gpt4 key购买 nike

我正在使用 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')后, 解析和拆分 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'])
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

最佳答案

我认为应用 json.load 是个好主意,但是从那里您可以直接将其转换为数据框列,而不是再次写入/加载它:

stdf = df['stats'].apply(json.loads)
pd.DataFrame(stdf.tolist()) # or stdf.apply(pd.Series)

或者在一个步骤中:

df.join(df['stats'].apply(json.loads).apply(pd.Series))

关于python - 解析使用 Pandas 从 CSV 加载的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com