2
例如,我有這樣一個數據幀:如何計算在熊貓登錄記錄時過去7天的登錄用戶?
import random
import pandas as pd
l = []
for day in range(30):
for userid in range(random.randint(5,30)):
l.append([day,userid])
df = pd.DataFrame(l, columns=['Day','UserID'])
我想知道獨特的用戶在過去7天數的記錄的用戶。我現在使用這樣的代碼:
result = {}
df.set_index('Day',inplace=True)
for d in df.index.unique():
result[d] = df[(df.index>=d-6) & (df.index<=d)].count()
pd.DataFrame(result).T
但我認爲我的代碼糟透了。你能幫我看看更優雅的方式嗎?比如pandas.rolling_sum或其他什麼?
感謝您的答覆。但是你似乎錯過了一點:如果一個用戶39在第一天和第二天登錄,你會數他兩次,但我們只應該算一次。 – kingbase