Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 按一列分组,然后按日期时间分组使用。descripe()[已解决]_Python_Pandas_Pandas Groupby - Fatal编程技术网

Python 按一列分组,然后按日期时间分组使用。descripe()[已解决]

Python 按一列分组,然后按日期时间分组使用。descripe()[已解决],python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个pandas DataFramedf,它基本上是一个用户在给定日期时间发出的tweet列表,看起来是这样的: created_at user_screen_name 3 2020-10-29 00:00:11 user_name_one 3 2020-10-29 00:00:11 user_name_one 3 2020-10-30 00:00:11 user_name_one 3 2020-10-31 00:00:11 user_

我有一个pandas DataFrame
df
,它基本上是一个用户在给定日期时间发出的tweet列表,看起来是这样的:

            created_at user_screen_name
3  2020-10-29 00:00:11    user_name_one
3  2020-10-29 00:00:11    user_name_one
3  2020-10-30 00:00:11    user_name_one
3  2020-10-31 00:00:11    user_name_one
5  2020-10-29 00:00:16    user_name_two
13 2020-10-30 00:00:38    user_name_two
13 2020-10-30 00:00:38    user_name_two
14 2020-10-30 00:00:39  user_name_three
17 2020-10-30 00:00:45  user_name_three
我想做的是首先根据
user\u screen\u name
列对推文进行分组,然后根据用户当天的推文次数对每个
user\u screen\u name
的推文进行进一步分组(因此,在本例中,user\u name\u one自29、30和31日发布以来将有三个组),然后最后调用
.descripe()
查询每个用户每天的推文数量,并将该信息附加到
df
上。所以最后,它看起来是这样的:

      user_screen_name count mean std ...
3        user_name_one     4    1   x ...
5        user_name_two     3  1.5   y ...
14     user_name_three     2    2   z ...
我相信我可以用
df.groupby
df.Grouper(freq=“D”)
来做这件事,但我不知道如何把它们放在一起,因为我对熊猫还是相当陌生的。我试过了

combined.groupby(['user_screen_name', pd.Grouper('created_at', freq='D')])
但它告诉我参数
freq
有多个值,这让我很困惑。任何帮助都将不胜感激

编辑:

经过一些修补,我找到了一个很好的单衬里。这相当慢(在一个有255000条tweet的数据集上完成大约5分钟),但我认为没有更快的方法,因为我相信
descripe()
是计算时间如此之长的原因:

combined = combined.groupby([pd.Grouper(key='user_screen_name'), pd.Grouper(key='created_at', freq='D')]).size().groupby(level=0).describe()