关于Pandas 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
Run Code Online (Sandbox Code Playgroud)
我DataFrame的结构如下:
name id x
----------------------
0 john 1 0
1 john 2 0
2 mike 1 1
3 mike 2 0
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
1 2 # (this is the id …Run Code Online (Sandbox Code Playgroud) 我的问题似乎重复,因为我发现不同的问题具有相同的错误,如下所示:
我尝试了这些帖子中提出的所有解决方案,但没有一个有效。我相信该错误可能是由我的数据集格式引起的,该格式具有字符串而不是数字,并且可能存在重复的整体。以下是我的数据集的示例:
| 协议号 | 活动 | 描述 |
|---|---|---|
| 1586212 | 走 | 一天两次 |
| 1586212 | 驾驶 | 5公里 |
| 1586212 | 驾驶 | 至少30分钟 |
| 1586212 | 睡觉 | 南 |
| 1586212 | 吃 | 1500卡路里 |
| 2547852 | 走 | 南 |
| 2547852 | 驾驶 | 南 |
| 2547852 | 吃 | 3200卡路里 |
| 2547852 | 吃 | 避免面食 |
| 2547852 | 睡觉 | 至少10小时 |
我想要实现的输出是:
| 协议号 | 走 | 驾驶 | 睡觉 | 吃 |
|---|---|---|---|---|
| 1586212 | 一天两次 | 5公里 | 南 | 1500卡路里 |
| 2547852 | 南 | 南 | 3200卡路里 | 至少10小时 |
我尝试使用pivot和pivot_table,代码如下:
df.pivot(index="protocol_no", columns="activity", values="description")
Run Code Online (Sandbox Code Playgroud)
但我仍然收到此错误:
ValueError: Index contains duplicate entries, cannot reshape
Run Code Online (Sandbox Code Playgroud)
不知道出了什么问题,所以任何帮助都会有帮助!
编辑:
我注意到我的数据包含错误以及 @DYZ 和 @SeaBean 用户所述的重复整体。因此,我编辑了数据库示例,并为我的数据集提供了正确的答案。希望它能帮助某人。
我正在尝试重新排列熊猫数据框。
目前我有:
id mins param
1 10 0.15
1 11 0.16
1 12 0.17
2 10 0.20
2 11 0.21
2 12 0.22
Run Code Online (Sandbox Code Playgroud)
但我想重新排列并按ID分组:
id param_10 param_11 param_12
1 0.15 0.16 0.17
2 0.20 0.21 0.22
Run Code Online (Sandbox Code Playgroud)
在大熊猫中,有没有一种有效的方法?还是应该手动手动研磨所有东西?
谢谢