【问题标题】:How can I plot the quantity of a group in a dataframe?如何在数据框中绘制组的数量?
【发布时间】:2019-08-23 08:27:10
【问题描述】:

我正在使用 Twitter 数据集 (@realDonaldTrump)。在这个数据集上,我想做一些 NLP 的东西。 现在我想绘制“源​​”列的数量。 数据框看起来像这样(我裁剪了它):

    User                Tweet_ID            Source      
0   @realDonaldTrump    1138445389709885445 Twitter for iPhone  
1   @realDonaldTrump    1138444530020245505 Twitter for iPhone

我已经尝试使用groupby().count() 绘制“源”中的所有对象:

%matplotlib inline
import pandas as pd
df_trump = pd.read_csv('@realDonaldTrump_tweets.csv')
df = df_trump
df
df.groupby([df.Source]).count().plot(kind='bar')

我得到了一个不错的情节,但我只希望每个对象都有一个(!)条。并非所有标题都显示。所以在下图中,“Twitter for iPhone”栏应该是一个没有显示数据框标题的栏。

Output: Bar Plot

【问题讨论】:

    标签: python-3.x nlp bar-chart


    【解决方案1】:

    只需查看聚合数据框即可了解正在发生的事情:

    df.groupby([df.Source]).count().head()
    

    你会得到这样的输出:

                         User Tweet_id Created_at Retweet_count Favorite_count  Text
    source      
    Twitter Media Studio 2    2        2          2             2               2
    Twitter for iPad     2    2        2          2             2               2
    Twitter for iPhone   2    2        2          2             2               2
    

    您会看到聚合(计数)已应用于所有未用于 groupby 的剩余列。

    作为一种快速修复,您可以执行以下操作来仅绘制其中一列:

    df.groupby([df.source]).count()['User'].plot(kind='bar')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 2020-03-01
      • 2018-05-17
      • 2020-08-23
      • 2019-03-03
      • 1970-01-01
      相关资源
      最近更新 更多