Pandas dataframe到dict,同时保留重复行

deyfvvtc  于 2023-06-20  发布在  其他
关注(0)|答案(2)|浏览(157)

我有一个dataframe,看起来像这样:

kenteken status code
0      XYZ      A  123
1      XYZ      B  456
2      ABC      C  789

我想把它转换成字典中的字典,就像这样:

{'XYZ':{'code':'123', 'status':'A'}, {'code':'456', 'status':'B'}, 'ABC' : {'code':'789', 'status:'C'}}

最接近我的是下面的:

df.groupby('kenteken')['status', 'code'].apply(lambda x: x.to_dict()).to_dict()

其产生:

{'ABC': {'status': {2: 'C'}, 'code': {2: '789'}},'XYZ': {'status': {0: 'A', 1: 'B'}, 'code': {0: '123', 1: '456'}}}

很接近但不完全。我真的不知道该怎么办了,所以感谢任何帮助!

8ftvxx2r

8ftvxx2r1#

这对你有用吗?

a = dict(df.set_index('kenteken').groupby(level = 0).\
    apply(lambda x : x.to_dict(orient= 'records')))

print(a)

{'ABC': [{'status': 'C', 'code': 789}], 'XYZ': [{'status': 'A', 'code': 123}, {'status': 'B', 'code': 456}]}
olmpazwi

olmpazwi2#

我下面写的不是对上面问题的回答,而是稍微修改过的问题。
我想知道我们如何才能有一个像下面这样的输出:

{'ABC': [{'status': 'C', 'code': 789}], 'XYZ': [{'status': ['A','B] 'code': [123, 456]}}

我希望状态和代码的值不分开。

相关问题