前言:
此时你们对“pandas 二维转一维”大体比较关注,各位老铁们都想要学习一些“pandas 二维转一维”的相关知识。那么小编同时在网络上网罗了一些对于“pandas 二维转一维””的相关内容,希望看官们能喜欢,各位老铁们一起来了解一下吧!【导语】数据分析的时候经常要把宽数据转变成长数据,本文将呈现两种解决方案。一种是 Excel 的逆透视,另一种是 Pandas 的 melt 方法。数据量小选择 excel,数据量大可用 Pandas。现在我们将各个城市的年份二维数据转换成一维,最终实现效果如下:
一、逆透视1、首先我们打开 excel,选中数据,按住 Alt 键,依次点击 D,P 将弹出数据透视表向导对话框,选择” 多重合并计算数据区域”,点击下一步: 如下所示:
2、选择” 创建单页字段”,点击下一步
3、拖动鼠标,选定区域,点击” 添加” 按钮,下一步
4、选择数据透视表显示位置” 新工作表”,点击” 完成” 按钮
5、在新工作表中生成数据透视表,双击右下角总计的数字
6、在新的工作表中自动生成了我们需要的表格,可以删除多余的字段,重命名现有的字段,完成
二、melt 方法
1、pandas.melt 使用参数:
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,则使用此级别。
2、代码实现
import pandas as pd# 读取数据data = pd.read_excel('C:/Users/cherich/Desktop/q.xlsx',index_col=0)data
#重置索引data1=data.reset_index()data1
#index保留,并把转换后的列命名为'year',value命名为'stu_num'data2=data1.melt(id_vars='index', var_name='year',value_name='stu_num')data2
data2.to_excel('./qq.xlsx',index=False)
上面我们通过 melt 完成和 excel 同样的效果,那么我们了解 melt 的实现原理之后,可简写如下:
datas=data.reset_index().melt('index', var_name='col').set_index('index')
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油❤。
标签: #pandas 二维转一维 #pandas二维转一维