我在计算excel工作表中重复一个日期的次数(按月过滤(,但如果日期不存在,我想在value_counts((函数中用0填充。然后我需要绘制它。
想象一下,这是一群卡车在运送一些产品:2022-07-04我只有一辆卡车,然后2022-07-06我有另一辆,但2022-07-05不存在,所以那天是0辆卡车(见图(
df_log_mel['Elecmetal Date'].loc()
july_log_mel = df_log_mel['Elecmetal Date'][2340:2378].value_counts(sort=False)
july_log_mel
结果:
2022-07-01 1
2022-07-02 2
2022-07-03 2
2022-07-04 1
2022-07-06 1
2022-07-07 1
2022-07-08 1
2022-07-09 2
2022-07-10 1
2022-07-11 1
2022-07-14 2
2022-07-15 1
2022-07-16 1
2022-07-17 2
2022-07-18 2
2022-07-19 2
2022-07-20 2
2022-07-21 2
2022-07-23 1
2022-07-24 1
2022-07-25 1
2022-07-26 1
2022-07-27 2
2022-07-29 2
2022-07-30 2
2022-07-31 1
Name: Elecmetal Date, dtype: int64
日期值_计数
有什么想法吗?
您可以使用date_range
:reindex
您的系列
s = df['date'].value_counts()
s = s.reindex(pd.date_range(s.index.min(), s.index.max(), freq='D')
.strftime('%Y-%m-%d'),
fill_value=0)
输出:
2022-07-04 2
2022-07-05 0
2022-07-06 1
2022-07-07 0
2022-07-08 1
Name: date, dtype: int64
使用的输入:
date
0 2022-07-04
1 2022-07-04
2 2022-07-06
3 2022-07-08
假设您想要每日值计数,请使用asfreq
和fillna
:
july_log_mel.index = pd.to_datetime(july_log_mel.index)
july_log_mel.asfreq('D').fillna(0)