在熊猫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
答案 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