如何将包含字典列表的数据框列转换为单独的列?



我有一个数据框架列,看起来像这样:

df_cost['region.localCurrency']:
0     [{'content': 'Dirham', 'languageCode': 'EN'}]
1     [{'content': 'Dirham', 'languageCode': 'EN'}]
2     [{'content': 'Dirham', 'languageCode': 'EN'}]
3       [{'content': 'Euro', 'languageCode': 'DE'}]
4       [{'content': 'Euro', 'languageCode': 'DE'}]
5       [{'content': 'Euro', 'languageCode': 'DE'}]
6       [{'content': 'Euro', 'languageCode': 'DE'}]
7       [{'content': 'Euro', 'languageCode': 'DE'}]
8       [{'content': 'Euro', 'languageCode': 'DE'}]
9       [{'content': 'Euro', 'languageCode': 'DE'}]
10      [{'content': 'Euro', 'languageCode': 'DE'}]
11      [{'content': 'Euro', 'languageCode': 'DE'}]
12      [{'content': 'Euro', 'languageCode': 'DE'}]
13    [{'content': 'Dirham', 'languageCode': 'EN'}]
14    [{'content': 'Dirham', 'languageCode': 'EN'}]
15    [{'content': 'Dirham', 'languageCode': 'EN'}]
16      [{'content': 'Euro', 'languageCode': 'DE'}]
17      [{'content': 'Euro', 'languageCode': 'DE'}]
18      [{'content': 'Euro', 'languageCode': 'DE'}]
19      [{'content': 'Euro', 'languageCode': 'DE'}]
Name: region.localCurrency, dtype: object

,我想转换它,将字典键和值分隔成列。我想在初始df_cost数据框架中添加两个单独的列,如"localCurrencyContent"one_answers"localCurrencyCode",基于region.localCurrency的字典内容。我试图分裂这个地区。localCurrency列,如:

df_split=pd.DataFrame(df_cost['region.localCurrency'].apply(pd.Series), columns=['localCurrencyContent', 'localCurrencyCode'])
print(df_split)

,但这给了我NaN值localCurrencyContent和localCurrencyCode,而不是'Euro'和'DE',例如。如何分割列"region. localcurrency"?并将创建的两个列添加到初始数据框架cost_df中?

使用json_normalize通过索引转换第一个值:

d = {'content':'localCurrencyContent','languageCode':'localCurrencyCode'}
df1 = pd.json_normalize(df_cost.pop('region.localCurrency').str[0]).rename(columns=d)
df = df_cost.join(df1)

熊猫。Json_normalize可能会为您完成这项工作。https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.json_normalize.html

相关内容

  • 没有找到相关文章

最新更新