繁体   English   中英

如何将列表字典从列值转换为 pandas df 中的列?

[英]How to convert the list dictionary from a column value into column in pandas df?

我有不同的列,其中一些列包含一个列表,而该列表包含另一个字典。 我想将该列表转换为列,但我不确定哪种技术是最好的......

这是我的 df 的外观:

Car      Year       Conv                                                       Cost
BMW      2001       [{'action_type': None, 'value': None}]                   2000
VW       2009       [{'action_type': 'landing_page_view', 'value':'50'}]       5000

这就是我希望看到的理想状态

Car      Year       Conv - action_type     Conv - value         Cost      
BMW      2001       None                   None                 2000
VW       2009       landing_page_view      50                   5000

这对我有用(假设list中只有一个dict ):

new = {}
for row in range(df.shape[0]):
    d = df.loc[row, 'Conv'][0]
    for k in d.keys():
        if 'Conv - ' + k in new.keys():
            new['Conv - ' + k].append(d[k])
        else:
            new['Conv - ' + k] =  [d[k]]

for k,v in new.items():
    df[k] = v

df.drop(columns='Conv', inplace=True)
df = df[['Car', 'Year', 'Conv - action_type', 'Conv - value', 'Cost']]

这是一个快速而肮脏的解决方案

df['Conv - Action_type'] = df['Conv'].apply(lambda x: x[0]['action_type'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM