Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python panda按月份和年份统计发生频率_Python_Csv - Fatal编程技术网

使用python panda按月份和年份统计发生频率

使用python panda按月份和年份统计发生频率,python,csv,Python,Csv,假设我有以下数据系列: Date Category 2014-8 Facebook 2014-8 Vimeo 2014-8 Facebook 2014-8 Facebook 2014-9 Facebook 2014-9 Orkut 2014-9 Facebook 2014-9 Facebook 2014-9 Facebook ... 2014-10 Youtube 2014-10 DailyMotion 2014-10

假设我有以下数据系列:

Date      Category
2014-8    Facebook
2014-8    Vimeo
2014-8    Facebook
2014-8    Facebook
2014-9    Facebook
2014-9    Orkut
2014-9    Facebook
2014-9    Facebook
2014-9    Facebook
...
2014-10    Youtube
2014-10    DailyMotion
2014-10    Facebook
2014-10    Vimeo
2014-10    Facebook
2014-10    Facebook
我想每月和每年统计每个类别(时间序列中的唯一值/系数)

Category     Date        Count
Facebook     2014-01     5
             2014-02     6
             2014-03     8
Vimeo        2014-01     3
             2014-02     10
             2014-03     9
youtube      2014-01     13
             2014-02     61
             2014-03     8
所以,当我打电话给Facebook时,我可以看到每个月Facebook发生了多少次

我尝试的是:

df['Date'] = df['Date'].map(lambda x: '{year}-{month}'.format(year=x.year,
                                                              month=x.month,
                                                              day=x.day))
a = df.groupby(['Category','year-month']).size()

提前感谢您的帮助和建议。

您需要按类别和日期分组,然后计算日期:

>>> df.groupby(['Category', 'Date']).Date.count()
Category     Date   
DailyMotion  2014-10    1
Facebook     2014-10    3
             2014-8     3
             2014-9     4
Orkut        2014-9     1
Vimeo        2014-10    1
             2014-8     1
Youtube      2014-10    1
Name: Date, dtype: int64
要获取特定类别(如“Facebook”)的月度总数,您首先需要对该类别进行筛选:

>>> df[df.Category == 'Facebook'].groupby(['Category', 'Date']).Date.count()
Category  Date   
Facebook  2014-10    3
          2014-8     3
          2014-9     4
Name: Date, dtype: int6

非常感谢,我正在做这件事,但如何才能获得Facebook或其他变量的信息?我的意思是,我想打电话给一个['Facebook',这样我就可以得到他们每月的自由度。@VessilliZaytsev请参见上文,以获得更多的回应。我认为,这将有助于我解决这个问题。非常感谢。