使用pd.groupby.sum()返回的对象制作条形图

时间:2018-12-28 20:05:08

标签: python python-3.x pandas matplotlib type-conversion

我正在尝试获取一个熊猫数据框(通过执行groupby partnerid创建),如下所示:(仅包含更多行)

    Dim nums As New List(Of Integer)
    Dim tbs() As TextBox = {TextBox1, TextBox2, TextBox3}

    For Each tb As TextBox In tbs
        Dim ns() As String = tb.Text.Split(","c, " "c)
        For Each n As String In ns
            Dim i As Integer
            If Integer.TryParse(n, i) Then
                nums.Add(i)
            Else
                Stop 'not a number
            End If
        Next
    Next
    nums = nums.Distinct.ToList
    nums.Sort()

并要制作条形图。

通常我会使用

|---------------------|------------------|
|      partnerid      |                  |
|---------------------|------------------|
|          6          |      25153       |
|---------------------|------------------|
|          9          |      13370       |
|---------------------|------------------|
|         75          |       47         |
|---------------------|------------------|

但是我得到了错误

df['partnerid'].value_counts().sort_index().plot.bar()

或者,我可以使用Matplotlib,但是我不知道如何引用未命名的列,并且在重命名它时,代码会运行,但不会更改列名。

我认为这可能是我试图对我使用的数据类型进行非法操作。

有人可以帮助我理解df.groupby.sum()的数据类型,以及如何将其更改为可以变成条形图的数据吗?

谢谢

1 个答案:

答案 0 :(得分:0)

也许这就是您第一步要做的事情,

df = df_initial.groupby(['partnerid']).sum()

然后,看起来您的df是一个pd.Series对象,因此您可以使用以下命令进行绘制

df.value_counts().sort_index().plot.bar()