Pandas--melt和pivot

melt和pivot函数说明

melt函数和pivot函数通常用来进行数据表行和列转换使用。
这里举一个例子来说明这两个函数可以达到的效果。
原数据
在这里插入图片描述
处理后数据
在这里插入图片描述

数据准备

data={"date":['20150901','20150901','20150901'],"hour":[12,12,12],"type":['AQI','PM2.5_24h','PM10_24h'],"北京":[24,14,20],"天津":
     [25,22,25],"石家庄":[24,20,32],"唐山":[24,9,20]} 
import pandas as pd
df = pd.DataFrame(data)

数据处理

根据需求可以观察到需要将“北京”,“天津”,“石家庄”和“唐山”这四列变换为一行,同时保留type列的类容。

  1. 列变行
df_melt=df.melt(id_vars=['date','hour','type'],var_name='City')

转变后结果:
在这里插入图片描述
2. 行变列

df_melt_pivot = df_melt.pivot(index=['date','hour','City'],columns='type',values='value').reset_index()
df_melt_pivot

在这里插入图片描述

函数说明

melt

pandas.melt(frame,id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)

函数作用
当一列或多列是标识符变量,而其它列被当成测定变量时,可以通过melt函数完成这种转变。
参数说明
id_vars 作为自变量的一列或多列。
value_vars 作为因变量的一列或多列,如果没有定义则将除id_vars列以外的所有列当作因变量列。
var_name 因变量列的名称,如果没有定义则使用几列中第一个列名。
value_name 转换后数值列的列名
col_level 当存在多重列索引时,指定用第几层索引进行转换
ignore_index True时忽略原始索引。否则保存原始索引。

pivot

pandas.pivot(data, index=None, columns=None, values=None)

函数作用
根据列值进行转置。使用指定索引/列中的唯一值形成返回数据框架的轴。该函数不支持数据聚合,多数值将导致多重索引。

参数说明
data 被转变的数据框架。
index 作为索引列,不指定时使用默认索引。
columns 作为返回数据框架的列
values 作为新构成数据框架的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱学习_程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值