用户操作之间的平均时间(SQL 和 pandas)
Average time between actions by user (SQL and pandas)
假设我有一个像这样的 table user_id
并且已经计算出操作之间的时间差。
**|user_id |sec_between_actions|**
| 329| 1|
| 329| 211|
| 329| 911|
| 329| 11|
| 329| 9|
| 12| 2|
| 12| 3|
| 12| 8|
| 12| 7|
| 12| 7|
| 1| 1|
| 1| 1|
| 111| 3|
| 111| 11|
| 18| 4|
| 29| 5|
| 29| 1|
(假设有很多记录和很多用户)
我想要的输出是这样的(使用 SQL):
**|user_id |avg_time_between_actions|**
| 329| 228,6|
| 12| 5,4|
| 1| 1|
| 111| 7|
| 18| 4|
| 29| 3|
要在 SQL 中执行此操作,您必须使用 group by 函数对相同的用户 ID 进行分组,然后使用聚合函数计算分组数字的平均值。
SQL代码:
SELECT user_id, AVG(sec_between_actions) as avg_time_between_actions,
FROM table_name
GROUP BY user_id;
我不确定您为什么使用 ,
而不是 .
,但是您也可以通过更改输出来做到这一点,但这似乎不合逻辑。
假设我有一个像这样的 table user_id
并且已经计算出操作之间的时间差。
**|user_id |sec_between_actions|**
| 329| 1|
| 329| 211|
| 329| 911|
| 329| 11|
| 329| 9|
| 12| 2|
| 12| 3|
| 12| 8|
| 12| 7|
| 12| 7|
| 1| 1|
| 1| 1|
| 111| 3|
| 111| 11|
| 18| 4|
| 29| 5|
| 29| 1|
(假设有很多记录和很多用户)
我想要的输出是这样的(使用 SQL):
**|user_id |avg_time_between_actions|**
| 329| 228,6|
| 12| 5,4|
| 1| 1|
| 111| 7|
| 18| 4|
| 29| 3|
要在 SQL 中执行此操作,您必须使用 group by 函数对相同的用户 ID 进行分组,然后使用聚合函数计算分组数字的平均值。
SQL代码:
SELECT user_id, AVG(sec_between_actions) as avg_time_between_actions,
FROM table_name
GROUP BY user_id;
我不确定您为什么使用 ,
而不是 .
,但是您也可以通过更改输出来做到这一点,但这似乎不合逻辑。