pandas 如何补齐列名和列值

a表有实际数据如下:

df = pd.DataFrame({'title': ['a1','a2'], '2022-2': [2, 22], '2022-4': [4, 44]})

  title  2022-2  2022-4
0    a1       2       4
1    a2      22      44

根据项目需要,实际还要一个 总共5个日期字段

 list = ['2022-1',' 2022-2','2021-3' ,'2021-4','2021-5']

即需要把df表补齐为:

  title  2022-1  2022-2  2022-3  2022-4  2022-5
0    a1       0       2       0       4       0
1    a2       0      22       0      44       0

请问pandas从a表取数后,怎么根据字段要求,补齐列名,如果不存在就填充零??

import pandas as pd
df = pd.DataFrame({'title': ['a1','a2'], '2022-2': [2, 22], '2022-4': [4, 44]})
df.insert(loc=1, column='2022-1', value=['0','0'])
df.insert(loc=3, column='2022-3', value=['0','0'])
df.insert(loc=5, column='2022-5', value=['0','0'])
print(df)

可以把填充的内容拿出来单独作为df,再利用resample函数处理:

content=df.iloc[:,1:]
content=content.T
temp=content.index
temp=pd.to_datetime(temp,format="%Y-%m")
content.index=temp
content=content.fillna(0)

但这种方法需要你手动插入最后一列。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632