[英]Count maximum occurences in a dataframe column for a specific timespan
此問題旨在作為以下問題的后續: 計算數據幀列中字符串的最大連續出現次數
假設我現在有以下數據框:
col1 col2
0 21.02.2020 string1
1 19.02.2020 string1
2 16.02.2020 string1
3 14.02.2020 string2
4 10.02.2020 string3
5 08.02.2020 string3
6 02.02.2020 string1
我現在如何確定一個字符串在從星期一開始到星期日結束的任何一周內出現的最大次數? 我怎樣才能在從星期一開始到下一個星期日結束的兩周內做同樣的事情?
我想計算出現次數,以便如果數據框跨越 5 周,它將返回該時間跨度內一周內string1
出現的最高次數。 如果數據框僅作為示例:
col1 col2
0 21.02.2020 string1
它會為string1
返回1
。
我相信您需要從周一到周日的幾周內測試行數:
df['col1'] = pd.to_datetime(df['col1'], dayfirst=True)
g = df['col2'].ne(df['col2'].shift()).cumsum()
df1 = df.groupby([g, pd.Grouper(freq='W-Mon', key='col1')])['col2'].agg(['first','size'])
print (df1)
first size
col2 col1
1 2020-02-17 string1 1
2020-02-24 string1 2
2 2020-02-17 string2 1
3 2020-02-10 string3 2
4 2020-02-03 string1 1
df2 = (df1.sort_values('size')
.drop_duplicates('first', keep='last')
.reset_index(level=0, drop=True))
print (df2)
first size
col1
2020-02-17 string2 1
2020-02-24 string1 2
2020-02-10 string3 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.