簡體   English   中英

計算特定時間跨度內數據幀列中的最大出現次數

[英]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.

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