熊猫:如何将具有重复索引值的数据框转换为字典

时间:2020-11-02 05:37:33

标签: python pandas dataframe dictionary indexing

我有一个DataFrame os.environ['CUDA_VISIBLE_DEVICES']='0',如下所示:

df_test

问题

我正在尝试使用b列作为索引从此数据帧创建字典。请注意,a b c 5 7 1 6 7 0 15 17 1 16 17 0 列中的值是重复的。当我使用下面给出的代码创建字典时,它仅将最后一行显示为输出。如何创建字典以包含数据框中提供的所有信息。

经过测试的代码

以下是代码:

b

输出

df_test.set_index('b', inplace=True)
df_test.T.to_dict(orient="list")

所需的输出

输出应包括与每个键对应的所有行,而不仅仅是最后一行。类似于但不限于以下所示的输出:

{7: [6, 0], 17: [16, 0]}

1 个答案:

答案 0 :(得分:1)

使用DataFrame.set_index处理lambda函数中GroupBy.apply中没有b的所有列,以转换为嵌套列表然后转换为字典:

d = df_test.set_index('b').groupby('b').apply(lambda x : x.to_numpy().tolist()).to_dict()
print (d)
{7: [[5, 1], [6, 0]], 17: [[15, 1], [16, 0]]}