这是我的代码:
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}}
我如何实现预期的输出?
答案 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