在熊猫中每个月增加额外的天数

时间:2019-06-07 15:34:51

标签: python database pandas

在熊猫df中,我在第一个列中有给定月份的天数,在第二个列中有天数。如何在第一列中添加该月不在那一天的日期,并在第二列中为其赋值为0

  df = pd.DataFrame({
'Date':['5/23/2019', '5/9/2019'],
'Amount':np.random.choice([10000])
})

我希望结果看起来像这样:

预期产量

       Date  Amount
 0  5/01/2019   0
 1  5/02/2019   0
 .
 .
 .  5/23/2019  1000
 .  5/24/2019   0

1 个答案:

答案 0 :(得分:1)

看看大熊猫中的date_range

我假设注释中不要求在输出中显示5/31/2019,因为您想要最小和最大日期之间的差异?

我将date列转换为日期时间类型。我将最小和最大日期传递给date_range并将其存储在数据框中。然后我就退出了。

df['Date'] = pd.to_datetime(df['Date'])
date_range = pd.DataFrame(pd.date_range(start=df['Date'].min(), end=df['Date'].max()), columns=['Date'])
final_df = pd.merge(date_range, df, how='left')

         Date   Amount
0  2019-05-09  10000.0
1  2019-05-10      NaN
2  2019-05-11      NaN
3  2019-05-12      NaN
4  2019-05-13      NaN
5  2019-05-14      NaN
6  2019-05-15      NaN
7  2019-05-16      NaN
8  2019-05-17      NaN
9  2019-05-18      NaN
10 2019-05-19      NaN
11 2019-05-20      NaN
12 2019-05-21      NaN
13 2019-05-22      NaN
14 2019-05-23  10000.0