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