Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将3列(x,y,result)数据帧转换为结果值的数据帧,其中x(unique)为行,y(unique)为列_Python_Numpy_Pandas_Dataframe - Fatal编程技术网

Python 将3列(x,y,result)数据帧转换为结果值的数据帧,其中x(unique)为行,y(unique)为列

Python 将3列(x,y,result)数据帧转换为结果值的数据帧,其中x(unique)为行,y(unique)为列,python,numpy,pandas,dataframe,Python,Numpy,Pandas,Dataframe,我想转换Python数据帧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 对于

我想转换Python数据帧
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
对于这样的数据帧:

        -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
column值

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

这是一种枢轴操作,您可以使用:

或:

或紧随其后:


哇!谢谢!
pivot
pivot\u table
之间有什么区别?@FemtoTrader查看API链接了解详细信息。我将查看API链接。即使时间更长,我也喜欢您的groupby解决方案,因为它帮助我理解groupby、aggregate和unstack方法。
>>> 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
>>> 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
>>> 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