为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕娘9325324 2021-11-09 13:42:29
要获得工作日的总行数/计数,我执行以下操作: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下面的答案是正确的。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超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']


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号