我有一个包含字典列表的 Dataframe . Json_normalize并附加到新的df

bvn4nwqk  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(147)

themesdf的一行如下所示:

[{'code': '1', 'name': 'Economic management'},
 {'code': '6', 'name': 'Social protection and risk management'}]

我想规范化每一行,并将其添加到newdf中。

import pandas as pd

themesdf = json_df['mjtheme_namecode']
newdf = pd.DataFrame()
%timeit() 
for row in themesdf:
    for item in row:
        newdf.append(json_normalize(item, 'name'))
newdf

打印出newdf后,它什么都没有来,我用这些数据的最终目标是得到前十大项目主题('name'列)。

rhfm7lfc

rhfm7lfc1#

我最近也做过类似的工作,我的解决方案是分解列表,让每个json都有自己的行,然后用pd.json_normalize()规范化,这会创建一个新的df,需要重新加入到原始表中。
由于您没有提供任何测试数据,下面是我最好的猜测:

import pandas as pd

# explode list column
explodedDf = themesDf.explode('mjtheme_namecode')

# normalize that column into a new df
normalizedDf = pd.json_normalize(explodedDf['mjtheme_namecode'])

# (optional) you may want to drop the original column
themesDf = themesDf.drop('mjtheme_namecode', axis = 1)

# join on index (default) with original df
newDf = themesDf.join(normalizedDf)

字符串

相关问题