49

pivotメソッドのパンダのドキュメントには、次のものがあります。

Examples
--------
>>> df
    foo   bar  baz
0   one   A    1.
1   one   B    2.
2   one   C    3.
3   two   A    4.
4   two   B    5.
5   two   C    6.

>>> df.pivot('foo', 'bar', 'baz')
     A   B   C
one  1   2   3
two  4   5   6

私のDataFrameは次のように構成されています:

   name   id     x
----------------------
0  john   1      0
1  john   2      0
2  mike   1      1
3  mike   2      0

そして、私はこのようなものが欲しい:

      1    2   # (this is the id as columns)
----------------------
mike  0    0   # (and this is the 'x' as values)
john  1    0

しかし、pivotメソッドを実行すると、次のように表示されます。

*** ReshapeError: Index contains duplicate entries, cannot reshape

foo列に繰り返しエントリがある例でも、これは意味がありません。メソッド呼び出しnameの最初の引数であるピボットのインデックスとして列を使用しています。pivot

4

6 に答える 6

94

pandas の更新でわかる限り、pivot() の代わりに pivot_table() を使用する必要があります。

pandas.pivot_table(df,values='count',index='site_id',columns='week')
于 2013-10-25T22:45:37.453 に答える
6

私にとってはうまくいきますか?使用している正確なピボット メソッド呼び出しを投稿できますか?

In [4]: df.pivot('name', 'id', 'x')
Out[4]: 
id    1  2
name      
john  0  0
mike  1  0
于 2012-06-28T13:46:31.953 に答える
3

友達、私はそのような問題を抱えていました。私の場合、問題はデータにありました - 私の列「情報」には1つの一意の値が含まれていたため、エラーが発生しました。

UPD : 作業の「ピボット」ペア (id_user,information) を修正するには、重複があってはなりません

それは動作します:

df2 = pd.DataFrame({'id_user':[1,2,3,4,4,5,5], 
'information':['phon','phon','phone','phone1','phone','phone1','phone'], 
'value': [1, '01.01.00', '01.02.00', 2, '01.03.00', 3, '01.04.00']})
df2.pivot(index='id_user', columns='information', values='value')

それは動作しません:

df2 = pd.DataFrame({'id_user':[1,2,3,4,4,5,5], 
'information':['phone','phone','phone','phone','phone','phone','phone'], 
'value': [1, '01.01.00', '01.02.00', 2, '01.03.00', 3, '01.04.00']})
df2.pivot(index='id_user', columns='information', values='value')
于 2016-05-04T07:29:57.077 に答える