FPL*_*FPL 2 python group-by pandas pandas-groupby
我正在尝试按列day和对 Pandas DataFrame 进行分组source,然后计算timestamp每个组的第 3 个 ( ) 的唯一实例(以了解每个源每天获得的点击次数),但出现此错误(完整回溯如下) :
TypeError: 'method' object is not subscriptable
我的代码是:
df['timestamp_count'] = df.groupby(["source", "day"]).agg({"timestamp": "nunique"})
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望得到这样的结果(包括新列,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
Run Code Online (Sandbox Code Playgroud)
当我运行时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
Run Code Online (Sandbox Code Playgroud)
使用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
Run Code Online (Sandbox Code Playgroud)