Python 根据日期添加行
我有一个数据框,其中一列是日期Python 根据日期添加行,python,date,pandas,add,Python,Date,Pandas,Add,我有一个数据框,其中一列是日期 2015-11-01 2015-12-01 2016-01-01 2016-03-01 2016-03-01 2016-10-01 2016-10-01 2016-12-01 2017-03-01 我想插入两行, 1.第一行前一个月的开始处的行 2.最后一行的下一个月结束时的一行 要获得所需的输出, 2015-10-01 2015-11-01 2015-12-01 2016-01-01 2016-03-01 2016-03-01 2016-10-01 2016-1
2015-11-01
2015-12-01
2016-01-01
2016-03-01
2016-03-01
2016-10-01
2016-10-01
2016-12-01
2017-03-01
我想插入两行,
1.第一行前一个月的开始处的行
2.最后一行的下一个月结束时的一行
要获得所需的输出,
2015-10-01
2015-11-01
2015-12-01
2016-01-01
2016-03-01
2016-03-01
2016-10-01
2016-10-01
2016-12-01
2017-03-01
2017-04-01
做这件事的蟒蛇式方法是什么?试试:
输出:
date
0 2015-10-01
1 2015-11-01
2 2015-12-01
3 2016-01-01
4 2016-03-01
5 2016-03-01
6 2016-10-01
7 2016-10-01
8 2016-12-01
9 2017-03-01
10 2017-04-01
使用:
或:
date
0 2015-10-01
1 2015-11-01
2 2015-12-01
3 2016-01-01
4 2016-03-01
5 2016-03-01
6 2016-10-01
7 2016-10-01
8 2016-12-01
9 2017-03-01
10 2017-04-01
df['date']=pd.to_datetime(df['date'])
a = df.loc[1, 'date'] - pd.offsets.MonthBegin()
b = df.loc[len(df.index) - 1, 'date'] + pd.offsets.MonthBegin()
df = pd.DataFrame([a] + df['date'].tolist() + [b], columns=['date'])
print (df)
date
0 2015-11-01
1 2015-11-01
2 2015-12-01
3 2016-01-01
4 2016-03-01
5 2016-03-01
6 2016-10-01
7 2016-10-01
8 2016-12-01
9 2017-03-01
10 2017-04-01
df.index = df.index + 1
df.loc[0, 'date'] = df.loc[1, 'date'] - pd.offsets.MonthBegin()
df.loc[len(df.index), 'date'] = df.loc[len(df.index) - 1, 'date'] + pd.offsets.MonthBegin()
df = df.sort_index()
print (df)
date
0 2015-10-01
1 2015-11-01
2 2015-12-01
3 2016-01-01
4 2016-03-01
5 2016-03-01
6 2016-10-01
7 2016-10-01
8 2016-12-01
9 2017-03-01
10 2017-04-01