在 DataFrame.pivot() 上,结果与我预期的不同

On DataFrame.pivot(), different result with what I expected

我指的是 https://github.com/pandas-dev/pandas/tree/main/doc/cheatsheet.

如您所见,如果我使用 pivot(),则所有值都在行号 0 和 1 中。

但是如果我确实使用 pivot(),结果会像下面这样不同。

pivot()之前的DataFrame:

pivot() 之后的数据帧:

这个结果是故意的吗?

在您的数据中,缺少灰色列(行的索引):

df = pd.DataFrame({'variable': list('aaabbbccc'), 'value': range(9)})
print(df)

# Output
  variable  value
0        a      0
1        a      1
2        a      2
3        b      3
4        b      4
5        b      5
6        c      6
7        c      7
8        c      8

添加灰色列:

df['grey'] = df.groupby('variable').cumcount()
print(df)

# Output
  variable  value  grey
0        a      0     0
1        a      1     1
2        a      2     2
3        b      3     0
4        b      4     1
5        b      5     2
6        c      6     0
7        c      7     1
8        c      8     2

现在您可以旋转了:

df = df.pivot('grey', 'variable', 'value')
print(df)

# Output
variable  a  b  c
grey             
0         0  3  6
1         1  4  7
2         2  5  8

花时间阅读