利用Python的pandas数据处理包将宽表变成窄表

 更新时间:2022年09月19日 16:57:44   作者:Joy_joye  
这篇文章主要介绍了利用Python的pandas数据处理包将宽表变成窄表,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

工作中经常会使用到将宽表变成窄表,例如这样的形式

编号编码单位1单位2单位3单位4..................   
1编码1...数量...数量...数量...数量.....................   
2编码2...数量...数量...数量...数量.....................   

然而工作中,这样查看数据不够方便,往往需要窄表的形式,如下:

编码单位数量
编码1单位1数量1
编码2单位2数量2
编码3单位3数量3
..................

尝试使用Excel中的lookup函数进行填充,较为麻烦还不能直接实现功能,刚好在自学Python,就查阅了资料,看看能不能使用Python强大的数据处理功能来实现这个需求。

pandas简介:pandas=pannel data+ data analysis;最初被作为金融数据分析工具而开发出来的,pandas为时间序列分析提供了很好的支持。同是也能够灵活处理缺失数据,为数据分析操作提供了更为便捷的手段。

话不多说,直接上jupyter代码。

1.引入包

供处理分析使用,这步so easy!

import pandas as pd
import numpy as np
import os

2.加载数据并显示。常规操作。

data=pd.read_excel('test.xls')
data.head()

自己的测试数据存在test.xls中,这个文件存储在路径不必考虑,直接将原始存储的文件在jupyter中点upload上传到里根目录里就可以。

 显示出来的,结果如图所示:

3.关键操作,将宽表转换为窄表

pd.set_option('display.max_rows', None)
df=pd.melt(data,id_vars="结算编码",var_name="单位",value_name="数量")
df.head()

显示结果如下, 可以看到数据显示不全,还有空值,需要进一步进行处理操作。

 4.对空值进行处理

pd.set_option('display.max_rows', None)
#删除所有值为空的行
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) 
#how字段可选有any和all,any表示只要有空值出现就删除,all表示全部为空值才删除;inplace字段表示是否替换掉原本的数据
#删除所有值为空的列
df.dropna(axis="columns",how="all",inplace=False)
df.dropna()

处理后的结果可以看到,数据显示齐全,并已过滤处理掉了空值。 

 5.导出存储到Excel中

file_dir = 'D:/program/write/'
exists = os.path.exists(file_dir)
 
if not exists:
 
    os.makedirs(file_dir)
df["结算编码"]  = df["结算编码"].astype(str) #设置单元格格式
df.dropna().to_excel(os.path.join(file_dir,"result3.xlsx"), sheet_name="处理结果")

处理后的存储结果:

 结论:Python对数据处理分析真的操作简单高效,后续可以多多尝试使用Python来简化办公繁杂的程序,提升工作效率。

到此这篇关于利用Python的pandas数据处理包将宽表变成窄表的文章就介绍到这了,更多相关Python的pandas数据处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于pyqt5弹出提示框的详细介绍

    关于pyqt5弹出提示框的详细介绍

    在实际的程序开发中经常会用到各种各样的消息框来给用户一些提示或提醒,下面这篇文章主要给大家介绍了关于pyqt5弹出提示框的详细介绍,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • python+tkinter实现一个简单的秒钟

    python+tkinter实现一个简单的秒钟

    这篇文章主要为大家详细介绍了Python如何利用tkinter实现一个简单的秒钟,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以自己动手尝试一下
    2024-02-02
  • Python django导出excel详解

    Python django导出excel详解

    这篇文章主要介绍了Python django导出excel的方法 ,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Python高级property属性用法实例分析

    Python高级property属性用法实例分析

    这篇文章主要介绍了Python高级property属性用法,结合实例形式分析了Python property属性的功能及各种常见的使用技巧,需要的朋友可以参考下
    2019-11-11
  • Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)

    Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)

    这篇文章主要介绍了Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • django 利用Q对象与F对象进行查询的实现

    django 利用Q对象与F对象进行查询的实现

    这篇文章主要介绍了django 利用Q对象与F对象进行查询的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 利用Python定位Span标签中文字的实战指南

    利用Python定位Span标签中文字的实战指南

    在网页数据抓取和信息提取的过程中,经常需要定位并获取HTML中特定标签的内容,其中,<span>标签是一个常见的内联元素,用于对文本进行分组或应用样式,本文将详细介绍如何使用Python来定位并提取<span>标签中的文字,需要的朋友可以参考下
    2024-12-12
  • python 一个figure上显示多个图像的实例

    python 一个figure上显示多个图像的实例

    今天小编就为大家分享一篇python 一个figure上显示多个图像的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 基于Python编写一个监控CPU的应用系统

    基于Python编写一个监控CPU的应用系统

    在使用电脑办公时,有时候不知道哪些软件或进程会占用大量的资源,导致进行其他任务时出现变慢、卡顿等现象。因此,实时监控系统的资源就变得非常重要。本文用Python编写了一款超治愈的RunCat监控应用系统,需要的可以参考一下
    2022-06-06
  • 教你学会通过python的matplotlib库绘图

    教你学会通过python的matplotlib库绘图

    今天教大家如何学会通过python的matplotlib库绘图,文中有非常详细的图文解说及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05

最新评论