在python中,将dataframe转换为dictionary,但不将列名作为键

2024-04-24 09:03:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面给出了一个数据框。我想把它译成词典。但我不希望列名作为键。在

data = {'0':[0.039169993,0.023344912], '1':[0.17865846,0.01093025],'2':[0.039170124,0.023344917], '3':[0.17865846,0.01093025],'4':[0.039170124,0.023344917]}
df= pd.DataFrame(data)



         0.0            1.0          2.0        3.0          4.0
0  0.039169993   0.17865846  0.039170124   0.17865846  0.039170124
1  0.023344912   0.01093025  0.023344917   0.01093025  0.023344917

**Desired Result**:
    {{0: 0.039169993, 1:0.023344912},
     {0: 0.17865846, 1:0.01093025},
     {0: 0.039170124, 1:0.023344917},
     {0: 0.17865846, 1:0.01093025},
     {0:0.039170124, 1:0.023344917}}

我的尝试:

^{2}$

我不希望列名作为键。有可能吗?在


Tags: 数据dataframedfdataresult词典pddesired
3条回答

您可以使用这个:

df.T.to_dict(orient='records')

[{0: 0.039169993, 1: 0.023344911999999999},
 {0: 0.17865845999999999, 1: 0.010930250000000001},
 {0: 0.039170124000000001, 1: 0.023344917},
 {0: 0.17865845999999999, 1: 0.010930250000000001},
 {0: 0.039170124000000001, 1: 0.023344917}]

所需的结果具有一组字典的格式,但是您不能拥有一组字典,因为字典是不可哈希的,但是您可以有一个列表。在

import pandas as pd

data = {'0': [0.039169993, 0.023344912], '1': [0.17865846, 0.01093025], '2': [0.039170124, 0.023344917],
        '3': [0.17865846, 0.01093025], '4': [0.039170124, 0.023344917]}
df = pd.DataFrame(data)

result = list(df.to_dict().values())

print(result)

输出

^{pr2}$

您可以使用transposeT.to_dict(orient='records')获得所需的输出,如:

df.T.to_dict(orient='records')

相关问题 更多 >