我有一个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]}
答案 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]]}