helloDasim 2021-12-14 20:57 采纳率: 0%
浏览 25
已结题

python使用resample获取年度数据,列名复杂化了,不知道如何修改列名

问题遇到的现象和发生背景

python使用resample获取年度数据,在多个产品名称下获取对应年的数据,使用df.groupby().resample().sum()
最后导致列名复杂化了,不知道如何修改列名

问题相关代码,请勿粘贴截图
data_years = data_2019_2020.set_index(['日期'])
data_years = data_years.groupby('商品编号').resample('Y').sum()
#删除多余的商品编号
data_years.drop(columns='商品编号',axis=1,inplace=True)
#重新设置索引,将原先索引都取消
data_years = data_years.reset_index(drop=False)
#提取年份
data_years['年'] = data_years['日期'].dt.year
# data_years['年'] = data_years['月份'].apply(lambda x:str(x)+'年')
# #将月份的列转换成列名
data_years = data_years.pivot(index='商品编号',columns='年',values='数量')
data_years= pd.DataFrame(data_years)
data_years = data_years.reset_index(drop=False)
#将NAN填充为0
# data_years['年'] = data_years['年'].fillna(0)
print(data_years)
print(data_years.columns)


###### 运行结果及报错内容 
年         商品编号     2019     2020
0    100100103    904.0    453.0
1    100100114      0.0      NaN
2    100100206  20775.0  14495.0

Index(['商品编号', 2019, 2020], dtype='object', name='年')

内容有NAN,想着把NAN填充为0,但是使用,fllna的方法出现了问题,报错出现了“年”字

###### 我的解答思路和尝试过的方法 

我的猜测是我选择的列名不对,这个列名如何正确打出

###### 我想要达到的结果

1,如何正确打出列名
2,如何将索引名的年去掉,恢复出列名为’商品编号‘ ,‘2019’,‘2020’


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月22日
    • 创建了问题 12月14日

    悬赏问题

    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算