每天平均输出(星期一,星期二等)

时间:2018-09-08 12:32:29

标签: python pandas average

当前,我有一个包含数千行的csv文件。每行显示日期和时间,但不按升序排列。如何根据日期(星期一,星期二,星期三等)计算事件/发生的次数?另外,它应该是每天的平均发生次数。例如,每个星期一的平均出现次数为712,每个星期二的平均出现次数为853,等等。

到目前为止,我设法使用该行添加了相应日期的一列

.sidebar-nav-fixed {
  width: 14%;
  height: 20%;
  /* margin-left: -10%; */
  /* margin-bottom: -5%; */
  top: 0;
  left: 0;
  z-index: 999;
  margin-top: 100px;
}

First 10 rows 但我不知道如何继续使用Python生成包含平均每天出现次数(星期一,星期二等)的输出。

输出应显示: [周一的平均水平,周三的平均周二等。]

1 个答案:

答案 0 :(得分:0)

要返回具有指定语言环境周一至周日的DateTimeIndex的日期名称

df['DAY'] = pd.to_datetime(df['DATE']).dt.day_name()

如果您还没有要汇总的列,请创建一列以表示发生的实例,然后进行以下操作:

#I'm assuming each day refers to a unique "instance" or occurrence 
#but this does not have to follow if you already have a column to count/aggregate
df['OCCURENCE'] = 1

要返回,给定日期的平均出现次数只需使用groupby语句并指定要平均的组:

group_df = df.groupby('DAY')['OCCURENCE'].mean()

要满足将所有内容都包含在列表中的怪异格式要求

output_list = []
for day in group_df.index:
    avg = group_df.loc[day][0]
    str_format = 'average for {d}:{v}'.foramt(d=day, v=avg) 
    output_list.append(str_format)

new_list = ' '.join(output_list)