在熊猫中复杂的旋转

时间:2016-10-17 09:24:55

标签: python pandas numpy

我有一个类似的数据框:

 In [4]: df
Out[4]: 
        A        B   C   D      E     F   G
0   apple   orange  10  20    cat   rat  10
1   apple   orange  10  20    cat   rat  20
2  grapes   banana  22  34    dog  frog  34
3  grapes   banana  22  34    dog  frog  40
4  grapes   banana  22  34    dog  frog  67
5    kiwi  avocado  90  89    ant   fox  76
6   apple   orange  10  20    cat   rat  10
7  cherry     date  56  91  tiger  lion  65

我想要的输出如下:

In [3]: df
Out[3]: 
        A        B   C   D      E     F  G_1  G_2  G_3
0   apple   orange  10  20    cat   rat   10   20    10
1  grapes   banana  22  34    dog  frog   34   40   67
2    kiwi  avocado  90  89    ant   fox   76    0    0
3  cherry     date  56  91  tiger  lion   65    0    0

我很困惑并尝试了很多pivot_table,但无法确定如何根据值添加其他列。 谢谢你的回复 的修改 我找到了一个使用groupby的方法,但只有它是唯一的才能起作用:

df.groupby(['A','B','C','D','E','F'])['G'].unique()
Out[26]: 
A       B        C   D   E      F   
apple   orange   10  20  cat    rat         [10, 20]
cherry  date     56  91  tiger  lion            [65]
grapes  banana   22  34  dog    frog    [34, 40, 67]
kiwi    avocado  90  89  ant    fox             [76]

然后我将把列表分成不同的列。

假设我有两个重复的行,那么我仍然希望将G中的值添加为单独的列,如所需的输出所示。如何将重复的值包含在单独的列中。

1 个答案:

答案 0 :(得分:2)

这是单程

self.errors.messages