pandas表格的行列转换

参考https://www.cnblogs.com/traditional/p/11967360.html

主要是希望将这样的数据

 

变成下面这样子

 

 

查看资料后

做法如下

# new_poems = pd.read_excel(file_path, engine='openpyxl', sheet_name='人-诗',dtype=str)
    # new_poems = new_poems.set_index(["朝代", "姓名"])#设置不动的列为索引
    # s = new_poems.stack()#打开
    # s = s.reset_index(drop=True, level=-1)#删除索引,即删除末尾一级(最高一级的)的索引
    # df = s.reset_index()#对前面的索引进行重置并自动进行笛卡尔积
    # df = df.rename(columns={0: "诗文"})

 

 也就是说:

先设置按兵不动的列set_index([列名1,列名2])

然后stack()

然后重置索引,并且drop索引,删除最高一级的索引

最后再来一遍reset_index

 

 

关于set和reset_index的区别见:

https://www.cnblogs.com/xxswkl/p/10997437.html

posted @ 2021-04-14 19:00  小千北同学超爱写代码  阅读(452)  评论(0编辑  收藏  举报