Py学习  »  Python

Python:如何根据列的唯一值对列名称进行分组?

emax • 3 年前 • 1113 次点击  

我有一个如下所示的数据框,其中我有不同数量的 case 和3个独特的价值观 val .

df
     case    val
0     0       x
1     0       y 
2     0       z
3     1       x 
4     1       z
5     2       y

现在我想要一个数据框架,每个案例有一行,每个案例有编号的列 瓦尔 .我想要这样的东西:

df1
      case     val0    val1    val2
0       0        x       y      z
1       1        x      nan     z
2       2       nan      y     nan
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127907
 
1113 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Corralien
Reply   •   1 楼
Corralien    3 年前

使用 pivot :

out = df.pivot(index='case', columns='val', values='val')
out.columns = [f'val{i}' for i in range(len(out.columns))]
>>> out
     val0 val1 val2
case               
0       x    y    z
1       x  NaN    z
2     NaN    y  NaN