将嵌套json列表拆分为多列

2024-04-28 07:42:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这是对我之前提出的一个问题的扩展,但范围和方法不同。你知道吗

我有一个dataframe,其中一列由每行中的字典列表填充

0    [{"date":"0 1 0" firstBoxerRating:[null null] ...
1    [{"date":"2 2 1" firstBoxerRating:[null null] ...
2    [{"date":"2013-10-05" firstBoxerRating:[null n...

这是给定行中某些信息的简短示例:

[{"date":"2 2 1" firstBoxerRating:[null null] firstBoxerWeight:201.75 judges:[{"id":404749 name:"David Hudson" scorecard:[]} {"id":477070 name:"Mark Philips" scorecard:[]} {"id":404277 name:"Oren Shellenberger" scorecard:[]}] links:{"bio":1346666 bout:"558867/1346666" event:558867 other:[]} location:"Vanderbilt University Memorial Gymnasium Nashville" metadata:" time: 2:54\n | <span>referee:</span> <a href=\"/en/referee/403887\">Anthony Bryant</a><span> | </span><a href=\"/en/judge/404749\">David Hudson</a> | <a href=\"/en/judge/477070\">Mark Philips</a> 

我想创建一个干净的dataframe,其中dictionary中的键变成列,值变成与特定列相关的行。你知道吗

下面是一个使用短示例作为输入数据的所需输出的示例:

date   firstBoxerRating  firstBoxerWeight judges  id.......
2 2 1    [null null]          201.75              404749.....

我不相信这个问题是重复的this

我已经尝试了这个问题的所有解决方案,我的数据还包含嵌套字典的列表,如果有任何类似于json的东西的话

例如,此解决方案:

pd.DataFrame.from_dict({(i,j): df[i][j] 
                           for i in df.keys() 
                           for j in df[i].keys()},
                       orient='index')

产生完全相同的输出

我也试过把专栏里的格言拆开包装:

df[0].apply(pd.Series)

但是,这同样会产生相同的输出


Tags: nameid示例dataframedf列表date字典
1条回答
网友
1楼 · 发布于 2024-04-28 07:42:29

通过使用regex和结构提取物. 你知道吗

我提取两个字符串之间的文本,并将所述文本附加到其相关列

示例:

df[0].str.extract('date(?P<date>.*?)firstBoxerRating(?P<firstBoxerRating>.*?)firstBoxerWeight(?P<firstBoxerWeight>.*?)judges(?P<JudgeID>.*?)links(?P<Links>.*?)location(?P<location>.*?)metadata(?P<metadata>.*?)')

相关问题 更多 >