python - 转换为数据框时如何将字典键保留为第一列?

标签 python dictionary dataframe

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

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

最佳答案

我认为最简单的是 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

关于python - 转换为数据框时如何将字典键保留为第一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309007/

相关文章:

python - 带有两个内部函数的闭包 python

python - 将函数的输出返回到字典

c# - 如何遍历包含多个键的字典列表,并更改不同的键值?

python - Tkinter 中的 tcl 错误

python - __str__ 和 Python 中的单引号与双引号行为

c# - 字典包含它时不会从不同的类返回值

r - 将列添加到 R 数据框中,该列是另一列中的字符串长度

python - 在数据框中添加两列并显示其他列

python - 使用正则表达式提取代码(不规则的正则表达式键)

python - Pygame - 在某个特定时间渲染 Sprite