首页 > 解决方案 > 在 pandas df 中添加缺失的月份

问题描述

我有以下内容df

df
               A                     B                   C
January        209733                0                   0
February       223054                0                   0
March          127957                0                   0
April          67021                 0                   0

我想将缺少的月份作为空单元格添加到这个df. 为此,我创建了一个df_empty

df_empty = {'A': '', 'B': '', 'C': ''}

我想通过以下方式将pd.concat其还原到我的原始df位置:

df = pd.concat([df, pd.DataFrame(df_empty, index=['May', 'June', 'July', ...])])

但是我不想对所有月份都进行硬编码,而是应该认识到最后一个月df是,并根据其他缺失的月份'April'填充。index=[]

这是 的索引df

df.index
Index(['January', 'February', 'March', 'April'], dtype='object')

我怎样才能做到这一点?

标签: pythonpandasdataframedatetime

解决方案


首先通过以下方式计算缺失的月份:

missing_months = [i for i in range(dt.datetime.strptime(df.index[-1], '%B').month+1, 13)]

然后使用 for 循环将它们转换为月份名称,并将其保存在列表中:

for i in range(len(missing_months)):
    missing_months[i] = dt.date(1900, missing_months[i], 1).strftime('%B')

最后missing_months列表可用于pd.concat.


推荐阅读