Pandas DataFrame from_dict - 为键设置列名,为键值对设置另一个列名。

4

我有一个如下所示的字典:

my_keys = {'a':10, 'b':3, 'c':23}

我把它转换成一个数据框(Dataframe):
df = pd.DataFrame.from_dict(my_keys)

它会输出以下格式的df
     a     b    c
0    10    3    23

我该如何使它看起来像下面这样:
Col1    Col2
a        10
b         3
c        23

我尝试了orient=index,但仍然无法获得列名?


如果是这样,那么我可能读错了此问题发布的日期/时间。请忽略。 - shiv_90
1个回答

5

您可以创建由元组组成的列表,并将其传递给 DataFrame 构造函数:


df = pd.DataFrame(list(my_keys.items()), columns=['col1','col2'])

或将键和值转换为单独的列表:
df = pd.DataFrame({'col1': list(my_keys.keys()),'col2':list(my_keys.values())})

print (df)
  col1  col2
0    a    10
1    b     3
2    c    23

您的解决方案应该改为使用 orient='index'columns,但需要添加DataFrame.rename_axisDataFrame.reset_index来处理来自index的列:

df = (pd.DataFrame.from_dict(my_keys, orient='index', columns=['col2'])
        .rename_axis('col1')
        .reset_index())

2
不错!成功了。我原本以为我必须使用 'from_dict' :/ - Ari
我该如何禁用索引? - Ari
@AriVictor - 如果需要写入文件,则使用 df.to_csv(file, index=False),如果需要打印输出,则使用 print(df.to_string(index=False)) - jezrael
你是传奇。 - Ari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接