Pandas:在 pandas 数据框中插入一个新行以填充日期
Pandas: insert a new row in pandas dataframe to populate with dates
我的 excel 文件有以下数据:
我想用那个月的第一个星期一开始的日期填充一个新行。
示例:
2020 年 5 月应如下所示:
日期采用 d/m/yyyy 格式。
有没有办法通过代码做到这一点?
我试过手动插入值,但是手动插入很忙,而且它会削弱编码的所有目的。
让我们从年月开始。对于您的示例,2020 年 5 月,是:
monthNo = 5
yearNo = 2020
所以月初日期可以计算为:
myDate = pd.to_datetime(f'{yearNo}-{monthNo:02}-01')
(时间戳('2020-05-01 00:00:00'))
然后让我们定义到星期一和月末的偏移量:
mondayOffs = pd.offsets.Week(0, weekday=0)
eoMonthOffset = pd.offsets.MonthEnd(0)
计算所选月份第一个星期一的日期和
本月底,运行:
startDate = monOffs.rollforward(myDate)
endDate = eoMonthOffset.rollforward(myDate)
得到:
Timestamp('2020-05-04 00:00:00')
Timestamp('2020-05-31 00:00:00')
要生成上述日期之间的日期序列,运行:
seq = pd.date_range(start=startDate, end=endDate)
最后一步,转换成你想要的格式即可实现运行ning:
dates = seq.strftime('%#d/%#m/%Y').tolist()
压缩一点的结果(一行中的几个日期)是:
['4/5/2020', '5/5/2020', '6/5/2020', '7/5/2020', '8/5/2020',
'9/5/2020', '10/5/2020', '11/5/2020', '12/5/2020', '13/5/2020',
'14/5/2020', '15/5/2020', '16/5/2020', '17/5/2020', '18/5/2020',
'19/5/2020', '20/5/2020', '21/5/2020', '22/5/2020', '23/5/2020',
'24/5/2020', '25/5/2020', '26/5/2020', '27/5/2020', '28/5/2020',
'29/5/2020', '30/5/2020', '31/5/2020']
现在由你决定如何将它保存在 DataFrame 中然后保存它
Excel 文件中的 DataFrame。
很遗憾,你的图片绝对不可读,所以我不知道
如何进行下一步。
我的 excel 文件有以下数据:
我想用那个月的第一个星期一开始的日期填充一个新行。
示例:
2020 年 5 月应如下所示:
日期采用 d/m/yyyy 格式。
有没有办法通过代码做到这一点?
我试过手动插入值,但是手动插入很忙,而且它会削弱编码的所有目的。
让我们从年月开始。对于您的示例,2020 年 5 月,是:
monthNo = 5
yearNo = 2020
所以月初日期可以计算为:
myDate = pd.to_datetime(f'{yearNo}-{monthNo:02}-01')
(时间戳('2020-05-01 00:00:00'))
然后让我们定义到星期一和月末的偏移量:
mondayOffs = pd.offsets.Week(0, weekday=0)
eoMonthOffset = pd.offsets.MonthEnd(0)
计算所选月份第一个星期一的日期和 本月底,运行:
startDate = monOffs.rollforward(myDate)
endDate = eoMonthOffset.rollforward(myDate)
得到:
Timestamp('2020-05-04 00:00:00')
Timestamp('2020-05-31 00:00:00')
要生成上述日期之间的日期序列,运行:
seq = pd.date_range(start=startDate, end=endDate)
最后一步,转换成你想要的格式即可实现运行ning:
dates = seq.strftime('%#d/%#m/%Y').tolist()
压缩一点的结果(一行中的几个日期)是:
['4/5/2020', '5/5/2020', '6/5/2020', '7/5/2020', '8/5/2020',
'9/5/2020', '10/5/2020', '11/5/2020', '12/5/2020', '13/5/2020',
'14/5/2020', '15/5/2020', '16/5/2020', '17/5/2020', '18/5/2020',
'19/5/2020', '20/5/2020', '21/5/2020', '22/5/2020', '23/5/2020',
'24/5/2020', '25/5/2020', '26/5/2020', '27/5/2020', '28/5/2020',
'29/5/2020', '30/5/2020', '31/5/2020']
现在由你决定如何将它保存在 DataFrame 中然后保存它 Excel 文件中的 DataFrame。
很遗憾,你的图片绝对不可读,所以我不知道 如何进行下一步。