3

我希望能够在 pandas 中使用 groupby 按列对数据进行分组,然后将其拆分,以便每个组都是数据框中自己的列。

例如:

   time  data
 0    1   2.0
 1    2   3.0
 2    3   4.0
 3    1   2.1
 4    2   3.1
 5    3   4.1
 etc.

进入

       data1  data2  ... dataN
 time  
 1     2.0      2.1  ...
 2     3.0      3.1  ...
 3     4.0      4.1  ...

我确定开始的地方是 df.groupby('time') 但是我似乎无法找出使用 concat (或其他函数)构建我想要的拆分数据框的正确方法。我在 API 中可能忽略了一些简单的功能。

4

1 回答 1

2

我同意@PhillipCloud。我认为这可能是解决您的问题的一些中间步骤,但也许在没有中间步骤的情况下直接解决您真正想要解决的问题会更容易。

但如果这是你真正想要的,你可以使用:

>>> df.groupby('time').apply(
        lambda g: pd.Series(g['data'].values)
    ).rename(columns=lambda x: 'data%s' % x)

      data0  data1
time              
1         2    2.1
2         3    3.1
3         4    4.1
于 2013-09-21T00:09:24.960 回答