美文网首页
如何使用 Pandas 进行数据逆透视和透视操作

如何使用 Pandas 进行数据逆透视和透视操作

作者: 价值INVEST | 来源:发表于2023-05-30 11:09 被阅读0次

Pandas 是 Python 语言中非常流行的数据处理库,其中的逆透视和透视操作在数据重塑方面是相当强大的。本文将介绍如何使用 Pandas 中的 pd.melt() 和 pd.pivot() 函数进行数据逆透视和透视操作。

首先,我们来看一个示例数据集:

import pandas as pd

# 构造测试数据
data = {'channel': ['A', 'B', 'C'],
        'level': ['L1', 'L2', 'L3'],
        'Jan': [100, 200, 300],
        'Feb': [150, 250, 350],
        'Mar': [200, 300, 400]}
da = pd.DataFrame(data)

以上代码生成了一个包含三个渠道、三个级别和三个月份销售额的数据集。其中,每个月份的销售额都被存储在一个独立的列中,这种表格形式称为宽表格(wide format)。

接下来,我们将使用 pd.melt() 函数将宽表格转换为长表格(long format),以便于进一步分析和可视化数据

def melt_data(df):
    # 使用 pd.melt() 函数进行逆透视列操作
    df_melted = pd.melt(df, id_vars=['channel', 'level'], var_name='month', value_name='value')
    return df_melted

df_melted = melt_data(da)
print(df_melted)

以上代码中,我们首先定义了一个名为 melt_data() 的函数,该函数使用 pd.melt() 函数进行逆透视列操作。其中:

  • id_vars:需要保留在结果表格中的列名。
  • var_name:新生成的列名,存储了原始表格中每个月份的列名。
  • value_name:新生成的列名,存储了原始表格中每个月份对应的值。

pd.melt() 函数将宽表格转换为长表格后,结果表格的每一行都包含了一个渠道、一个级别和一个月份的销售额。

接下来,我们将使用 pd.pivot() 函数将长表格转换回宽表格。具体而言,我们将以 channel 和 level 列作为索引,以 month 列为列名,以 value 列为值,从而重新构造出一个与原始数据集相同的宽表格形式。

def pivot_data(df):
    # 使用 pd.pivot() 函数进行转换操作
    df_pivoted = pd.pivot(df, index=['channel', 'level'], columns='month', values='value')
    
    # 将列名按照期望顺序进行重新赋值,并使用 loc[] 函数进行列的重排
    new_columns = ['Jan', 'Feb', 'Mar']
    df_pivoted = df_pivoted.loc[:, new_columns]

    # 去掉列字段名称
    df_pivoted.columns.name = None
    
    # 重置索引并返回处理后的数据
    return df_pivoted.reset_index()

df_pivoted = pivot_data(df_melted)
print('\n',df_pivoted)

# 保存结果
df_pivoted.to_csv('sales_data.csv', index=False)

以上代码中,我们首先定义了一个名为 pivot_data() 的函数,该函数使用 pd.pivot() 函数进行转换操作。其中:

  • index:需要用作新表格索引的列名。
  • columns:需要将其转换为新表格列名的列名。
  • values:需要填充到新表格中的值。

pd.pivot() 函数将长表格转换回宽表格后,结果表格的每一行都包含了一个渠道、一个级别和三个月份的销售额。

最后,我们可以通过以下代码将结果表格存储到一个 CSV 文件中。

本文介绍了如何使用 Pandas 中的 pd.melt() 和 pd.pivot ,希望对大家有启发!

本文由mdnice多平台发布

相关文章

  • 20 Pandas的stack和pivot实现数据透视

    Pandas的stack和pivot实现数据透视 经过统计得到多维度指标数据 使用unstack实现数据二维透视 ...

  • 数据整理小技巧——逆透视

    透视过的数据很直观易于分析,但是难以进行数据处理,于是就有逆透视的需求了。 逆透视可以在PowerQuery里面非...

  • 2018-12-05数据透视布局及美化

    数据透视布局及美化 在进行数据透视表操作之前,必须将数据源进行规范操作,数据源规范了才能创建数据透视表。 1、数据...

  • 财务总监必备Excel技巧_____数据透视表

    处理数据透视表以表格形式显示操作方法 数据透视表中进行日期组合的操作方法 在数据透视表中进行合并单元格的方法 微信...

  • Excel 双层饼图

    操作步骤 (使用版本Excel 2016 )示例数据不能直接应用,需利用透视表对分类1进行汇总 1、创建透视表:菜...

  • 今日Excel技能总结

    由于工作需要,今天excel实用技能大幅提升,学会的操作大致总结如下: 1.如何按月份进行数据透视(透视表邮件“创...

  • 数据透视表&

    20.数据透视布局及美化 1.创建数据透视表 操作:插入~数据透视表~选项~显示~经典数据透视表~拖动字段~选项 ...

  • 数据透视表-第9节

    创建数据透视表 创建数据透视表1.jpg 认识透视表工具 1.数据透视表字段 2.数据透视表使用 3.调节数据透视...

  • 学习14

    1.如何插入数据透视表 2.如何对数据透视表中的数据进行排序和筛选image.png其他排序选项即可筛选 3.怎样...

  • 打卡23天

    数据透视表 (1) 如何插入数据透视表:选中任意数据——插入数据透视表—如需要经典模式(数据透视表选项——显示——...

网友评论

      本文标题:如何使用 Pandas 进行数据逆透视和透视操作

      本文链接:https://www.haomeiwen.com/subject/gsosedtx.html