将行作为字典转换为dataframe python的列

2024-05-19 00:07:28 发布

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

我有一个包含两列的数据框架,第二列的值作为字典。我正在尝试将字典的键转换为dataframe的独立列

df
    name  values
    a     {'king':'diamond','queen':'spade','jack':'club'}
    a     {'king':'spade','queen':'club','jack':'diamond'} 
    b     {'king':'club','queen':'diamond','jack':'spade'}
    b     {'king':'spade','queen':'spade','jack':'diamond'} 

预期产量

df
    name  king    queen   jack 
    a     diamond spade   club
    a     spade   club    diamond
    b     club    diamond spade
    b     spade   spade   diamond

我正在考虑使用pandas.DataFrame(),但不确定如何将其应用于数据帧中的列。应该采取什么办法

谢谢


Tags: 数据name框架dataframepandasdf字典spade
2条回答

使用以下命令:

pd.concat([df, pd.DataFrame(list(df["values"]))], axis=1)

结果是:

  name                                             values     king    queen  \
0    a  {'king': 'diamond', 'queen': 'spade', 'jack': ...  diamond    spade   
1    a  {'king': 'spade', 'queen': 'club', 'jack': 'di...    spade     club   
2    b  {'king': 'club', 'queen': 'diamond', 'jack': '...     club  diamond   
3    b  {'king': 'spade', 'queen': 'spade', 'jack': 'd...    spade    spade   

      jack  
0     club  
1  diamond  
2    spade  
3  diamond  

你也可以

print(df.set_index("name")['value'].apply(pd.Series).reset_index())

  name     king    queen     jack
0    a  diamond    spade     club
1    a    spade     club  diamond
2    b     club  diamond    spade
3    b    spade    spade  diamond

相关问题 更多 >

    热门问题