Pandas df 操作 - 将数据分成 2 列

Slo*_*ing 3 python dataframe pandas

我有一个示例数据框,其中包含 2 个指示列(下面的示例,产品和版本 - 其中版本号只能是 1 或 2)和包含实际数据的第三列。

product       version       data    
  a              1          8000
  a              2          1000
  b              1          4000
  b              2          2000
  c              1          9000
  c              2          1000
  d              1          2500
  d              2          3000
Run Code Online (Sandbox Code Playgroud)

我试图操纵我的 df 以便代替上面的,我有 2 个数据列(比如 data1 和 data2),它们对应于该产品的版本(从而使版本列变得多余)。见下文:

product       data1       data2    
  a           8000        1000
  b           4000        2000
  c           9000        1000
  d           2500        3000
Run Code Online (Sandbox Code Playgroud)

有没有人能够就实现这一目标的简单解决方案提出建议?

imd*_*skp 5

您可以使用 pandas 函数旋转表格 .pivot

>>> result = df.pivot(index='product', columns='version', values='data').reset_index()
>>> result
version product     1     2
0             a  8000  1000
1             b  4000  2000
2             c  9000  1000
3             d  2500  3000

>>> result.index.name = None
>>> result.columns = ['product', 'data1', 'data2']
>>> result
  product  data1  data2
0       a   8000   1000
1       b   4000   2000
2       c   9000   1000
3       d   2500   3000
Run Code Online (Sandbox Code Playgroud)