Pandas 一周中每一天的平均行数

要获得工作日的总行数/计数,我执行以下操作:


df['day'] = pandas.to_datetime(df['datetime']).dt.day_name()

print(pandas.value_counts(df.day))

但是,例如,如果数据框中的星期五比星期一多,我如何获得每个工作日的平均行数?或者换个方式问:我如何将每个计数除以发生的那个工作日的数量?


澄清:例如有 5 Mo,tue,wen,thurs 但 4 fri,sat,sun () 我想将 Mo,tue,wen,thurs 的计数除以 5 和 fri,sat 的计数,太阳 () 由 4


下面的答案是正确的。


慕娘9325324
浏览 103回答 1
1回答

冉冉说

假设您只想要天数: num_days = df['day'].value_counts()如果您想要数据集中的天数百分比。 df['day'].value_counts(normalize=True)更进一步,看起来您想要数据集中的天数与可能的天数。 # Create series for days in your dataframe days_in_df = df['day'].value_counts() # Create a dataframe with all days start = '01/01/2019' end = '01/31/2019' all_days_df = pd.DataFrame(data={'datetime':pd.date_range(start='01/01/2019',periods=31,freq='d')}) all_days_df['all_days'] = all_days_df['datetime'].dt.day_name() # Use that for value counts all_days_count = all_days_df['all_days'].value_counts() # We now merge them result = pd.concat([all_days_count,days_in_df],axis=1,sort=True) # Finnaly we can get the ration result['day']/result['all_days']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python