gpt4 book ai didi

python - 用数据框中列表中的值替换索引

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:20 25 4
gpt4 key购买 nike

我有以下数据框:

A | B | C | D | ListVal
---------------------------------
0 | 3 | 2 | 1 | [0.0,0.1,0.2,0.3]
---------------------------------
2 | 1 | 0 | 3 | [0.5,0.6,0.7,0.8]
---------------------------------
2 | 3 | 1 | 0 | [0.15,0.25,0.35,0.45]

对于每一行,我想使用 A-D 列中的数字作为 ListVal 列中列表的索引,并在相应列中填充值。所以对于上面的数据框,我想把它转换成:

A   |  B  |  C  |  D  | ListVal
-----------------------------------------
0.0 | 0.3 | 0.2 | 0.1 | [0.0,0.1,0.2,0.3]
-----------------------------------------
0.7 | 0.6 | 0.5 | 0.8 | [0.5,0.6,0.7,0.8]
-----------------------------------------
0.35| 0.45| 0.25| 0.15| [0.15,0.25,0.35,0.45]

请注意,每行的索引是不重复的。

我尝试通过将最后一列转换为矩阵并将前四列转换为另一个矩阵来使用 numpy 来执行此操作。但也卡在那里!

最佳答案

下面是我将如何用两行代码来完成:

数据框:

df1=pd.DataFrame({'A':[0,2,2],'B':[3,1,3],'C':[2,0,1],'D':[1,3,0],'ListVal':[[0.0,0.1,0.2,0.3],[0.5,0.6,0.7,0.8],[0.15,0.25,0.35,0.45]]})

将其转换为列表列表:

df_vals=df1.values.tolist()

并使用以下列表理解:

desired=[[d[4][e] if i<4 else e for i,e in enumerate(d)]for d in df_vals]

如果需要,还可以转换回 Dataframe:

df=pd.DataFrame(desired, columns=['A','B','C','D','ListVal'])

输出:

print df
A B C D ListVal
0 0.00 0.30 0.20 0.10 [0.0, 0.1, 0.2, 0.3]
1 0.70 0.60 0.50 0.80 [0.5, 0.6, 0.7, 0.8]
2 0.35 0.45 0.25 0.15 [0.15, 0.25, 0.35, 0.45]

关于python - 用数据框中列表中的值替换索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com