Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
从dataframe中的列中提取唯一的json键_Json_Pandas - Fatal编程技术网

从dataframe中的列中提取唯一的json键

从dataframe中的列中提取唯一的json键,json,pandas,Json,Pandas,我有一个熊猫数据框架,下面的列是json格式的。我需要从中的所有行中获取唯一的json键 下面是数据帧。不确定pandas是否有任何内置功能来执行此操作 Col3 {"a": 2000, "b": 1} {'c': 'Go bug go','d': 'go_line21','e': 'movie','duration': 2166} 如果使用实际代码,这个问题会更好。给定的列不是json格式,因为它同时包含双引号(正确)和单引号(非json格式)元素 还不清楚这些列是存储为dict还是

我有一个熊猫数据框架,下面的列是json格式的。我需要从中的所有行中获取唯一的json键 下面是数据帧。不确定pandas是否有任何内置功能来执行此操作

 Col3

 {"a": 2000, "b": 1}
 {'c': 'Go bug go','d': 'go_line21','e': 'movie','duration': 2166}

如果使用实际代码,这个问题会更好。给定的列不是json格式,因为它同时包含双引号(正确)和单引号(非json格式)元素

还不清楚这些列是存储为dict还是字符串

这就是说,根据和,如果列实际上是json格式的,那么下面是如何得到答案的:使用json.loads,然后获取列名

import json
import pandas as pd
from pandas.io.json import json_normalize

df = pd.DataFrame({'Col3' : 
               ['{"a": 2000, "b": 1}',
                '{"c": "Go bug go", "d": "go_line21", "e": "movie", "duration": 2166}']})

json_normalize(df['Col3'].apply(json.loads)).columns.to_list()

如果您必须纠正错误的引用,那么您需要遵循。

这个问题最好使用实际代码。给定的列不是json格式,因为它同时包含双引号(正确)和单引号(非json格式)元素

还不清楚这些列是存储为dict还是字符串

这就是说,根据和,如果列实际上是json格式的,那么下面是如何得到答案的:使用json.loads,然后获取列名

import json
import pandas as pd
from pandas.io.json import json_normalize

df = pd.DataFrame({'Col3' : 
               ['{"a": 2000, "b": 1}',
                '{"c": "Go bug go", "d": "go_line21", "e": "movie", "duration": 2166}']})

json_normalize(df['Col3'].apply(json.loads)).columns.to_list()

如果必须纠正不正确的报价,则需要遵循。

您可以从中创建一个新的数据框,并将关键点作为列表抓取:

list(pd.DataFrame(df['Col3'].to_list()).columns)
输出:

# ['a', 'b', 'c', 'd', 'e', 'duration']

您可以从中创建一个新的数据帧,并将键作为列表抓取:

list(pd.DataFrame(df['Col3'].to_list()).columns)
输出:

# ['a', 'b', 'c', 'd', 'e', 'duration']