[英]Pandas GroupBy and add count of unique values as a new column
我试图按day
和source
列对Pandas DataFrame进行分组,然后为每个组计算第3个( timestamp
)的唯一实例(以找出每个来源每天获得的点击次数),但是却收到此错误(已满)下面的回溯): TypeError: 'method' object is not subscriptable
我的代码是:
df['timestamp_count'] = df.groupby(["source", "day"]).agg({"timestamp": "nunique"})
理想情况下,我希望得到这样的结果(包括新列timestamp_count
:
day source timestamp timestamp_count
1 facebook 2018-08-04 11:16:32.416 2
1 facebook 2019-01-03 10:25:38.216 2
1 twitter 2018-10-14 13:26:22.123 1
2 facebook 2019-01-30 12:16:32.416 1
当我运行df.describe()
,我看到source
是一个对象,而day
是一个整数。 这可能是问题的一部分吗? 看了其他问题之后,似乎很可能就是这样,但是似乎没有一个抛出相同的输入/错误组合。
谁能帮助Python新手? 非常感谢!
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-90-db5a002137ca> in <module>
----> 1 df['timestamp_count'] = (df.groupby["source",
"day"]).agg({"timestamp": "nunique"})
TypeError: 'method' object is not subscriptable
使用transform
广播结果:
df['timestamp_count'] = (
df.groupby(["source", "day"])['timestamp'].transform('nunique'))
df
day source timestamp timestamp_count
0 1 facebook 2018-08-04 11:16:32.416 2
1 1 facebook 2019-01-03 10:25:38.216 2
2 1 twitter 2018-10-14 13:26:22.123 1
3 2 facebook 2019-01-30 12:16:32.416 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.