【精选】【Python】Pandas DataFrame 一维表二维表的转换 | 您所在的位置:网站首页 › python怎么把两列数据变成二维数组 › 【精选】【Python】Pandas DataFrame 一维表二维表的转换 |
目录
一、stack & unstackunstack 将一维表转换为二维表stack 将二维表转换为一维表
二、pivot & meltpivot 将一维表转换为二维表melt将二维表转换为一维表
Tips
用pandas处理数据,我们经常获取到的是从数据库或者excel中获取的一维表。而常常需要重排,转换为二维表,类似于excel中的透视。 举例: 一维表 df df = pd.DataFrame( { 'key1':['one','two','three','one','two','four'], 'key2':['A','B','C','D','C','D'], 'value':np.random.randn(6) } )二维表 df2 介绍两种转换方式。 一、stack & unstackstack 和 unstack 的工作机制都是依赖于dataframe本身的多层索引进行转换的。 默认情况下,最内层是unstack的,也可以指定层级序号或名称来拆分特定层级。 unstack 将一维表转换为二维表 # 第一步 df1 =df.set_index(['key1','key2']) # 运用unstack,不写参数,默认转换最里层的index,也就是key2; df2=df1.unstack() df2.reset_index() # 也可以指定要转换的索引 df1.unstack('key1') # 或 df1.unstack(0)最后,可以通过reset_index方法去除索引。 stack 将二维表转换为一维表 df2.stack() 二、pivot & melt pivot 将一维表转换为二维表 df.pivot('key1','key2','value') melt将二维表转换为一维表 pd.melt(df,['key1','key2'])也可以指定列的子集为值列 pd.melt(df,id_vars=['key1'], value_vars=['value']) Tipsstack 和unstack方法可以用来处理多层数据。 也就是行和列索引不只一个的情况。 可参考 (https://blog.csdn.net/qq_41080850/article/details/86294173) multiindex 的索引方式 外层索引可以包含式地使用内层索引,反过来则不行 |
CopyRight 2018-2019 实验室设备网 版权所有 |