根据数据框值创建字典

时间:2020-08-14 14:43:27

标签: python python-3.x pandas

我想创建一个字典,其中的键是数据帧的一列中的值,而键是对应行中另一列中的值。

这是一个示例数据框:

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
df.head()

    A   B   C   D
0   34  99  78  0
1   31  47  44  22
2   53  38  11  27
3   86  84  81  87
4   57  4   23  46

我想获得一个像这样的字典,其中A值作为键,C值作为字典值:

{34: 78, 31: 44, 53: 11, 86: 81,57: 23}

您将如何去做?

2 个答案:

答案 0 :(得分:4)

您可以从具有键和元组的元组数组中创建字典。因此,您可以在通过zip函数将值转换为元组之后直接在这里使用dict构造函数

In [12]: dict(zip(df['A'], df['C']))                                                                                                                                                                               
Out[12]: {34: 78, 31: 44, 53: 11, 86: 81, 57: 23}

答案 1 :(得分:2)

另一种方法 Series.to_dictDataFrame.set_index

df.set_index('A')['C'].to_dict()
# {34: 78, 31: 44, 53: 11, 86: 81, 57: 23}