如何用0 value_counts()填充一系列日期



我在计算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

假设您想要每日值计数,请使用asfreqfillna:

july_log_mel.index = pd.to_datetime(july_log_mel.index)
july_log_mel.asfreq('D').fillna(0)

最新更新