关于pivot
方法的Pandas文档,我们有:
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
方法调用的第一个参数。
答案 0 :(得分:80)
据我所知,对pandas的更新,你必须使用pivot_table()而不是pivot()。
pandas.pivot_table(df,values='count',index='site_id',columns='week')
答案 1 :(得分:26)
试试这个,
#drop_duplicates removes entries which have same values for 'foo' and 'bar'
df = df.drop_duplicates(['foo','bar'])
df.pivot('foo','bar','baz')
答案 2 :(得分:2)
适合我吗?你可以发布你正在使用的确切的枢轴法呼叫吗?
In [4]: df.pivot('name', 'id', 'x')
Out[4]:
id 1 2
name
john 0 0
mike 1 0
答案 3 :(得分:2)
UPD :纠正工作' pivot'对(id_user,信息)不能有dublicates
有效:
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')
答案 4 :(得分:0)
我的数据没有重复的枢轴对,而ivot_table仍然抛出关键错误:( drop_duplicates()将我的数据截断为该对的第一个值。
输入:
Well Reading Filter 4
0 A2 1 116041
1 B2 1 105191
2 C2 1 93942
3 D2 1 96821
4 E2 1 85622
5 F2 1 90227
6 G2 1 95801
7 H2 1 107833
8 A2 2 115765
9 B2 2 104395
10 C2 2 93986
...
1630 G2 204 388682
1631 H2 204 444708
1632 rows × 3 columns
df_X2.pivot_table('阅读中','很好','过滤器4')
抛出:KeyError:'正在读取'
df_X2_uniq = df_X2.drop_duplicates(['Well','Reading']) 将数据截断到前8行:
Well Reading Filter 4
0 A2 1 116041
1 B2 1 105191
2 C2 1 93942
3 D2 1 96821
4 E2 1 85622
5 F2 1 90227
6 G2 1 95801
7 H2 1 107833
经过2个小时的梳理,我再也不明智了……关于我应该如何使枢纽正常工作的任何暗示?