如何将DF转换为Dictionary

时间:2019-12-30 18:31:50

标签: python pandas

这是我的代码:

import pandas as pd
import xlrd

p=pd.read_excel("D:\contacts.xlsx")
pp=p.set_index('Col-A').T
print(pp)
dic=pp.to_dict()

print(dic) 

我的DF:

    Col-A  Col-B
0      1     10
1      2     20
2      3     30
3      4     40
4      5     50
5      6     60
6      7     70
7      8     80
8      9     90
9     10    100

预期输出: {1:10,2:20,3:30,4:40,5:50}

我的输出如下:

Col-A  1   2   3   4   5 
Col-B  10  20  30  40  50  
{1: {'Col-B': 10}, 2: {'Col-B': 20}, 3: {'Col-B': 30}, 4: {'Col-B': 40}, 5: {'Col-B': 50}}

我如何实现预期的输出?

2 个答案:

答案 0 :(得分:2)

首先set_index,然后执行to_dict并致电Col-B

df.set_index('Col-A').to_dict()['Col-B']

# {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90, 10: 100}

答案 1 :(得分:0)

to_dict方法接收参数“ orient”,默认值为dict。

您可以将该输出转换为东方,将其设置为“列表”。

df.to_dict('list')

您可以在此之后进行迭代以将列表平整为单个值。

https://pandas.pydata.org/pandas-docs/version/0.21/generated/pandas.DataFrame.to_dict.html