用panda操作数据帧以转换列和调整日期



我如何处理这样的数据帧,进行一个转置,将一个数据帧连接到另一个数据框下,并以日期的形式排列它?

让它通过转换这个现有的数据帧,而不干扰它的创建。

数据帧:

df = pd.DataFrame({
'Jan':[1, 2, 3],
'Feb':[4, 5, 6],
'Mar':[7, 8, 9]
})
df

输出:

Jan Feb Mar
0   1   4   7
1   2   5   8
2   3   6   9

期望结果:


1990-Jan    1       
1990-Feb    4   
1990-Mar    7   
1991-Jan    2   
1991-Feb    5   
1991-Mar    8
1992-Jan    3   
1992-Feb    6   
1992-Mar    9   

obs:在最终结果中,日期不一定是月份的名称,可以是它们的数字。

# flatten the DF
df2=df.stack().reset_index().rename(columns={0:'val'})
# create the date
df2['date'] = (1990 + df2['level_0']).astype('str') + "-" + df2['level_1']
# drop unwanted columns
df2=df2.drop(columns=['level_0','level_1'])
df2
val     date
0   1   1990-Jan
1   4   1990-Feb
2   7   1990-Mar
3   2   1991-Jan
4   5   1991-Feb
5   8   1991-Mar
6   3   1992-Jan
7   6   1992-Feb
8   9   1992-Mar

最新更新