簡體   English   中英

Pandas GroupBy並將唯一值計數添加為新列

[英]Pandas GroupBy and add count of unique values as a new column

問題

我試圖按daysource列對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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM