簡體   English   中英

熊貓通過多列分組,計數和重新采樣

[英]Pandas groupby multiple columns, count, and resample

具有以下數據框:

                     UserID TweetLanguage
2014-08-25 21:00:00  001        english
2014-08-27 21:04:00  001        arabic
2014-08-29 22:07:00  001        espanish
2014-08-25 22:09:00  002        english
2014-08-26 22:09:00  002        espanish
2014-08-25 22:09:00  003        english 

我需要繪制以多種語言發布的每周用戶數。

例如,在上述數據框中,用戶001和002用多種語言發布了推文。 因此,在圖中,本周的對應值應為2。

df.groupby([pd.Grouper(freq='W'), 'User ID'])['TweetLanguage'].nunique().unstack().plot()
df.groupby(pd.Grouper(key='datetime', freq='W')).apply(lambda df:\
df.groupby('UserID').apply(lambda df: len(df.TweetLanguage.value_counts())))

這是一種可以分開一周並在一周內獲得語言數量的班輪

df.groupby('UserID').apply(lambda df: len(df.TweetLanguage.value_counts()))

這將返回一個序列,其索引為:用戶ID的值:每周使用的語言數。

使用2個groupbys 第一個查找每周使用多種語言發布的用戶,第二個查找每周有多少種語言。

(df.groupby([df.index.year.rename('year'), df.index.week.rename('week'), 'UserID']).TweetLanguage.nunique() > 1).groupby(level=[0,1]).sum()

#year  week
#2014  35      2.0
#Name: TweetLanguage, dtype: float64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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