【Python系列专栏】第六十八篇 Python中 Pandas 重塑和轴向旋转

本文介绍了Pandas库中的数据重塑和轴向旋转技巧,包括使用stack和unstack进行行列转换,以及如何通过melt将宽格式数据转换为长格式。stack将列转换为行,unstack则反之,而melt函数用于合并多列成一列,适用于时间序列数据的处理。这些操作对于数据预处理和分析非常关键。
摘要由CSDN通过智能技术生成

8.3 重塑和轴向旋转

重新排列表格型数据

8.3.1 重塑层次化索引
  • stack:将数据的”旋转“为

  • unstack:将数据的“旋转”为

    例如:

data=pd.DataFrame(np.arange(6).reshape((2,3)),
                 index=pd.Index(['ohio','colorado'],name='state'),
                 columns=pd.Index(['one','two','three'],name='number'))

#将列转换为行
data.stack()

#将行转换为列
data.stack().unstack()
#等价于
data.stack().unstack(1)

​ 默认情况下,unstack操作的是最内层。传入分层级别的编号名称即可对其它级别进行unstack操作。即,上面的unstack转换是转换的number这一层。

​ stack默认会滤除缺失数据,因此该运算是可逆的。


8.3.2 将“长格式”旋转为“宽格式”

​ 多个时间序列数据通常是以所谓的“长格式”(long)或“堆叠格式”(stacked)存储在数据库和CSV中。


8.3.3 将“宽格式”旋转为“长格式”

​ 旋转DataFrame的逆运算是pandas.melt

​ 合并多个列称为一个,产生一个比输入长的DataFrame。

​ 当使用pandas.melt时,必须指明哪些列是分组指标。

​ 例如:

df=pd.DataFrame({'key':['foo','bar','baz'],
                'A':[1,2,3],
                'B':[4,5,6],
                'C':[7,8,9]})

melted=pd.melt(df,['key'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrrunsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值