为了账号安全,请及时绑定邮箱和手机立即绑定

从数据框内容创建字典(主题作为键,嵌入作为值)

从数据框内容创建字典(主题作为键,嵌入作为值)

慕尼黑的夜晚无繁华 2023-10-31 14:16:48
包含以下内容的数据框            0                1           2          3            4          5        0    reviewers#0        -0.016271    0.011541    0.011903    -0.001355   0.0087021    reviewers#1         -0.037961   0.033415    0.020643    0.004748    0.0145232    reviewers#2         -0.019863   0.019906    0.017248    0.006216    0.0088263    reviewers#3         -0.021029   0.016401    0.010772    0.001874    0.0057724    reviewers#4         -0.013409   0.011703    0.011249    0.000111    0.0093195    reviewers#5         -0.008549   0.007816    0.007859    0.000984    0.0054916    reviewers#6         -0.01634    0.017007    0.014637    0.005241    0.0081357    reviewers#7         -0.017075   0.016119    0.013666    0.00314     0.0087868    reviewers#8         -0.030823   0.020217    0.012402    -0.003165   0.0096439    reviewers#9         -0.038311   0.026252    0.017619    0.003568    0.00397210   confiscated#0       -0.007147   0.007387    0.010867    0.000735    0.01124411   confiscated#1       -0.016917   0.014412    0.016182    0.001859    0.01559612   confiscated#2       -0.004854   0.004091    0.005075    -0.000566   0.0045813   confiscated#3       -0.02642    0.021311    0.018871    -0.001843   0.01703314   confiscated#4      -0.016161    0.013325    0.013113    -0.001036   0.01138515   confiscated#5       -0.0131     0.0117      0.013829    -0.000861   0.0122516   confiscated#6       -0.006454   0.005335    0.006634    -0.001038   0.00632217   confiscated#7      -0.006855    0.005225    0.007626    -0.003071   0.00904818   confiscated#8      -0.019227    0.015683    0.016805    -0.004709   0.01945319   confiscated#9      -0.010685    0.011237    0.011653    0.003006    0.007464
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

听起来这就是你所追求的:


import pandas as pd

from collections import defaultdict


df = pd.DataFrame([

    {0: 'reviewers#0', 1: 1.0, 2: 2.0, 3: 3.0},

    {0: 'reviewers#1', 1: 4.0, 2: 5.0, 3: 6.0},

    {0: 'confiscated#0', 1: 7.0, 2: 8.0, 3: 9.0},

    {0: 'confiscated#1', 1: 10.0, 2: 11.0, 3: 12.0},

])


print(df)


result = defaultdict(list)

for _, values in df.iterrows():

    values = list(values)

    result[int(values[0].split('#')[1])] += [values[1:]]

print(result)

结果:


               0     1     2     3

0    reviewers#0   1.0   2.0   3.0

1    reviewers#1   4.0   5.0   6.0

2  confiscated#0   7.0   8.0   9.0

3  confiscated#1  10.0  11.0  12.0

defaultdict(<class 'list'>, {0: [[1.0, 2.0, 3.0], [7.0, 8.0, 9.0]], 1: [[4.0, 5.0, 6.0], [10.0, 11.0, 12.0]]})

即数据框具有您描述的结构,result字典是您需要的结果吗?


如果您需要defaultdict成为一个简单的字典,则需要进行一些小的更改,或者您可以将其转换 - 但这不应该是一个问题。


查看完整回答
反对 回复 2023-10-31
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信