【问题标题】:How to keep dictionary key as first column when transformed into dataframe?转换为数据框时如何将字典键保留为第一列?
【发布时间】:2017-04-09 16:15:02
【问题描述】:

我想将字典转换成数据框。

dic={'a': [5, 9],
     'b': [4, 61],
     'c': [24, 9]}

如果你这样做:

df=pd.DataFrame(dic).transpose()

你将拥有:

    0   1
a   5   9
b   4  61
c  24   9

但我想保留字典键作为第一列,我该怎么做?

name   F0   F1
a      5    9
b      4    61
c      24   9

【问题讨论】:

    标签: python dictionary dataframe


    【解决方案1】:

    我认为最简单的是reset_index:

    df=pd.DataFrame(dic, index=['F0','F1']).rename_axis('name', axis=1).transpose().reset_index()
    print (df)
      name  F0  F1
    0    a   5   9
    1    b   4  61
    2    c  24   9
    

    还有:

    df=pd.DataFrame.from_dict(dic, orient='index').reset_index()
    df.columns = ['name','F0','F1']
    print (df)
      name  F0  F1
    0    b   4  61
    1    c  24   9
    2    a   5   9
    

    另一个小技巧 - 将值从键添加到 dict comprehension 中的值,但 reset_index 也是默认单调索引 (0,1,2..) 所必需的:

    dic = {k:[k]+v for k,v in dic.items()}
    print (dic)
    {'b': ['b', 4, 61], 'c': ['c', 24, 9], 'a': ['a', 5, 9]}
    
    df=pd.DataFrame(dic, index=['name','F0','F1']).transpose().reset_index(drop=True)
    print (df)
    
      name  F0  F1
    0    a   5   9
    1    b   4  61
    2    c  24   9
    

    【讨论】:

    • 很高兴能为您提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    相关资源
    最近更新 更多