pandas的melt函数,melt是逆转操作函数,可以将列名转换为列数据(columns name → column values),重构DataFrame,用法如下:
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
参数解释:
frame:要处理的数据集;
id_vars:不需要被转换的列名;
value_vars:需要转换的列名,如果剩下的列全部都要转换,就不用写了;
var_name和value_name是自定义设置对应的列名;
col_level :如果列是MultiIndex,则使用此级别。
import pandas as pd
import numpy as np
data1=pd.read_excel(r'D:\学习文档\python学习\含时间的二维数组转为一维.xlsx',index_col=0)#index_col用来设置索引列
data1.head()
data2=data1.reset_index()
data3=data2.melt(id_vars='index', var_name='year',value_name='stu_num')
data4=data3.set_index('index')
2020 2019 2018 2017 2016 2015 2014 2013
品种1 74 42 44 76 96 100 23 51
品种2 1 2 36 94 37 98 43 33
品种3 82 96 31 72 97 46 5 82
品种4 38 35 32 37 34 2 81 82
品种5 85 34 92 66 79 1 78 17
year stu_num
index
品种1 2020 74
品种2 2020 1
品种3 2020 82
品种4 2020 38
品种5 2020 85
... ... ...
品种9 2013 44
品种10 2013 38
品种11 2013 53
品种12 2013 23
品种13 2013 89
104 rows × 2 columns