gpt4 book ai didi

python - 将 3 列 (x, y, result) Python Pandas DataFrame 转换为结果值的 DataFrame,x(唯一)作为行,y(唯一)作为列

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:28 24 4
gpt4 key购买 nike

我想像这样转换 Python Pandas DataFrame df:

      x  y  result
id
1 -0.8 -1 0.64
2 -0.8 0 -0.36
3 -0.4 -1 0.16
4 -0.4 0 -0.84
5 0.0 -1 0.00
6 0.0 0 -1.00
7 0.4 -1 0.16
8 0.4 0 -0.84
9 0.8 -1 0.64
10 0.8 0 -0.36

像这样的 DataFrame:

        -1     0
-0.8 0.64 -0.36
-0.4 0.16 -0.84
0.0 0 -1.00
0.4 0.16 -0.84
0.8 0.64 -0.36

我知道如何获得唯一的 x 值:

df["x"].unique()

和独特的 y 值:

df["y"].unique()

但我不知道如何在 DataFrame 中“分配”result 列值。

我更喜欢矢量化解决方案以避免循环。

最佳答案

这是一个pivot 操作,您可以使用.pivot_table :

>>> df.pivot_table(values='result', index='x', columns='y')
y -1 0
x
-0.8 0.64 -0.36
-0.4 0.16 -0.84
0.0 0.00 -1.00
0.4 0.16 -0.84
0.8 0.64 -0.36

.pivot :

>>> df.pivot(index='x', columns='y')['result']
y -1 0
x
-0.8 0.64 -0.36
-0.4 0.16 -0.84
0.0 0.00 -1.00
0.4 0.16 -0.84
0.8 0.64 -0.36

.groupby其次是 .unstack :

>>> df.groupby(['x', 'y'])['result'].aggregate('first').unstack()
y -1 0
x
-0.8 0.64 -0.36
-0.4 0.16 -0.84
0.0 0.00 -1.00
0.4 0.16 -0.84
0.8 0.64 -0.36

关于python - 将 3 列 (x, y, result) Python Pandas DataFrame 转换为结果值的 DataFrame,x(唯一)作为行,y(唯一)作为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24970202/

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