Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从多列数据帧规范化JSON对象_Python_Python 3.x - Fatal编程技术网

Python 从多列数据帧规范化JSON对象

Python 从多列数据帧规范化JSON对象,python,python-3.x,Python,Python 3.x,我试图从一个请求中提取JSON的一些信息,但在某一点上遇到了一些问题 因为我的数据是嵌套的JSON,所以我首先使用 df = json_normalize(response) 将信息输入df。但结果我得到了一个df,它仍然有一个包含JSON样式信息的列,我不能再使用JSON_规范化来提取它了。 df看起来像: id duration columnA 1 12 [{"A": "600", "B": "3

我试图从一个请求中提取JSON的一些信息,但在某一点上遇到了一些问题

因为我的数据是嵌套的JSON,所以我首先使用

df = json_normalize(response)
将信息输入df。但结果我得到了一个df,它仍然有一个包含JSON样式信息的列,我不能再使用JSON_规范化来提取它了。 df看起来像:

id    duration     columnA                            
1     12         [{"A": "600", "B": "30", "C": "50"},{"A": "200", "B": "35", "C": "50"}]  
2     5          [{"A": "300", "B": "70", "C": "80"},{"A": "400", "B": "76", "C": "90"}]                       
但是当我尝试的时候

df2 = json_normalize(df['columnA'])
我只得到一个错误“AttributeError:“list”对象没有属性“values”

因此,我希望得到一个df,如:

A   B   C
600 30  50
200 35  50
300 70  80
400 76  90
你能试试这个吗

df = json_normalize(response, 'columnA', ['A','B','C'])
假设A、B和C是平的,你能试试这个吗

df = json_normalize(response, 'columnA', ['A','B','C'])

假设A、B和C是平面的

您可以将每个内部对象标准化,并将结果数据帧合并在一起:

将熊猫作为pd导入
从pandas.io.json导入json_规范化
df=pd.DataFrame(
[
[
1.
2.
[{“A”:“600”,“B”:“30”,“C”:“50”},{“A”:“200”,“B”:“35”,“C”:“50”}],
],
[
2.
5.
[{“A”:“300”、“B”:“70”、“C”:“80”}、{“A”:“400”、“B”:“76”、“C”:“90”}],
],
],
columns='id duration columnA'.split(),
)
打印(pd.concat(list(df.columnA.map(json_normalize)))
输出:

     A   B   C
0  600  30  50
1  200  35  50
0  300  70  80
1  400  76  90

您可以将每个内部对象标准化,并将生成的数据帧合并在一起:

将熊猫作为pd导入
从pandas.io.json导入json_规范化
df=pd.DataFrame(
[
[
1.
2.
[{“A”:“600”,“B”:“30”,“C”:“50”},{“A”:“200”,“B”:“35”,“C”:“50”}],
],
[
2.
5.
[{“A”:“300”、“B”:“70”、“C”:“80”}、{“A”:“400”、“B”:“76”、“C”:“90”}],
],
],
columns='id duration columnA'.split(),
)
打印(pd.concat(list(df.columnA.map(json_normalize)))
输出:

     A   B   C
0  600  30  50
1  200  35  50
0  300  70  80
1  400  76  90

发布你的
回复
内容发布你的
回复
内容