从熊猫数据透视表绘制前n个指标

时间:2020-02-07 16:21:38

标签: python pandas pivot-table

在pandas数据框中,如果我创建一个枢轴并基于该列进行绘图,则如何限制基于聚合函数绘制的列数。

示例

假设我有一个数据框枢纽

         sum                        
name     'a'     'b'     'c'     'd'
key                                 
1          1       2       3       4
2          1       2       3       4
3          1       2       3     nan

我绘制为

enter image description here

现在,我只想根据平均值绘制前(2)列,这样只有'c'和'd'会出现抑制'a'和'd'的情况。

如何使用熊猫来实现这一目标?

输入数据框和图

from io import StringIO
import pandas as pd

TESTDATA = StringIO("""name;key;value
    'a';1;1
    'a';2;1
    'a';3;1
    'b';1;2
    'b';2;2
    'b';3;2
    'c';1;3
    'c';2;3
    'c';3;3
    'd';1;4
    'd';2;4
    """)
df = pd.read_csv(TESTDATA, sep=";")
pivot = pd.pivot_table(df, index='key', columns='name', values='value',aggfunc=[np.sum])
pivot.plot()

1 个答案:

答案 0 :(得分:3)

您可以在set pythonPath to "/path/to/anaconda3/envs/jupyter/bin/python" set scriptPath to "/absolute/path/to/project/api/get_classrooms.py" set result to do shell script "eval `/usr/libexec/path_helper -s`; python -m api.get_classrooms" 中找到mean,然后在pivot中找到nlargest,然后使用.loc[],仅选择这些列并绘制:

n=2

enter image description here