nic*_*hel 15 matplotlib pandas
我有以下数据集示例:
0 1
0 0 0.040158
1 2 0.500642
2 0 0.005694
3 1 0.065052
4 0 0.034789
5 2 0.128495
6 1 0.088816
7 1 0.056725
8 0 -0.000193
9 2 -0.070252
10 2 0.138282
11 2 0.054638
12 2 0.039994
13 2 0.060659
14 0 0.038562
Run Code Online (Sandbox Code Playgroud)
并且需要一个盒子和胡须图,按第0列分组.我有以下内容:
plt.figure()
grouped = df.groupby(0)
grouped.boxplot(column=1)
plt.savefig('plot.png')
Run Code Online (Sandbox Code Playgroud)
但我最终得到了三个子图.如何将所有三个放在一个地块上?谢谢.

fix*_*xer 25
在0.16.0版本的熊猫中,你可以简单地这样做:
df.boxplot(by='0')
Run Code Online (Sandbox Code Playgroud)
结果:

我不相信你需要使用groupby.
df2 = df.pivot(columns=df.columns[0], index=df.index)
df2.columns = df2.columns.droplevel()
>>> df2
0 0 1 2
0 0.040158 NaN NaN
1 NaN NaN 0.500642
2 0.005694 NaN NaN
3 NaN 0.065052 NaN
4 0.034789 NaN NaN
5 NaN NaN 0.128495
6 NaN 0.088816 NaN
7 NaN 0.056725 NaN
8 -0.000193 NaN NaN
9 NaN NaN -0.070252
10 NaN NaN 0.138282
11 NaN NaN 0.054638
12 NaN NaN 0.039994
13 NaN NaN 0.060659
14 0.038562 NaN NaN
df2.boxplot()
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
23059 次 |
| 最近记录: |