数据处理工具Pandas

pandas之pd.read_parquet()和pd.to_parquet()介绍 python之pd.read_parquet()和pd.to_parquet()介绍 阅读详情

前言

这是一篇水文,除了实战经验,其他都是copy,主要是记录一下使用Pandas的一些概念和经验。

定义

Pandas是一个Python库,主要用来处理结构化数据

数据结构

  • Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。
  • DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
    Pandas数据结构

文件格式

Pandas常用来处理csv、parquet、Json格式文件;这里简单讲一讲parquet

parquet

Nothing better than org:Apache Parquet
Apache Parquet是大数据体系结构中的重要组件。Apache Parquet是一种文件格式,旨在支持对复杂数据的快速数据处理。

特点

开源、列式存储
parquet的特点

文件结构

一个Parquet文件是由一个header以及一个或多个block块组成,以一个footer结尾。header中只包含一个4个字节的数字PAR1用来识别整个Parquet文件格式。文件中所有的metadata都存在于footer中。footer中的metadata包含了格式的版本信息,schema信息、key-value paris以及所有block中的metadata信息。footer中最后两个字段为一个以4个字节长度的footer的metadata,以及同header中包含的一样的PAR1。
parquet文件结构
Parquet 的存储模型主要由行组(Row Group)、列块(Column Chuck)、页(Page)组成。

  1. 行组,Row Group:Parquet 在水平方向上将数据划分为行组,默认行组大小与 HDFS Block 块大小对齐,Parquet 保证一个行组会被一个 Mapper 处理。
  2. 列块,Column Chunk:行组中每一列保存在一个列块中,一个列块具有相同的数据类型,不同的列块可以使用不同的压缩。
  3. 页,Page:Parquet 是页存储方式,每一个列块包含多个页,一个页是最小的编码的单位,同一列块的不同页可以使用不同的编码方式。
  4. 另外 Parquet 文件还包含header与footer信息,分别存储文件的校验码与Schema等信息。

不得不说还是知乎dalao讲得透彻;再按照dalao的讲解复述一遍:行组就是把数据水平分块;然后在行块内,数据是按列存储的,这样的好处应该是在数据处理时针对某些特定列处理的效率更高,可以多个行块并行按列处理;列块下还有page,这个page是不是就是内存处理的最小单元,就跟以前学习MySQL的page一样?
Org. Parquet File Format

parquet优势

从整个Parquet数据结构来看,我的理解应该有下面一些优势:

  • 行组,可并行处理
  • 列块,可针对特定列处理,不需要把所有列都加载到内存,IO优势;
    说白了,parquet就是针对大数据组件、应用场景设计出来的数据格式,面向需求设计。
parquet工具

parquet文件需要特定的工具来查看,因为它的存储是二进制

  • parquetViewer.exe
  • parquet-tools

实战经验

将DadaFrame所有float数据属性的列转换为int类型
columns = collect_data_filter.select_dtypes(include=float).columns.values.tolist()
collect_data_filter[columns] = collect_data_filter[columns]c.apply(pd.to_numeric, errors='ignore')

.fillna(0)是为了防止空行、nan、inf报错

取Dataframe某列满足相应条件的数据
collect_data_filter = data[
                data['name'].map(lambda x: self.func(x) == target)]

学而时习之,不亦说乎?

file_name = poor_quality_event[0] + '_' + poor_quality_event[3] + '_' + self.table_prefix_list[index] + '.csv'

output_path = os.path.join(self.output_path, poor_quality_event[3], poor_quality_event[0])

self.mkdir(output_path)
res.to_csv(os.path.join(output_path, file_name), index=False, columns=columns_name)

def mkdir(self, path):
    folder = os.path.exists(path)
    if not folder:
        os.makedirs(path)
    else:
        print("file path exists")
【pandas数据处理及分析】 1.查询数据在pandas中,可以使用以下方法查找数据:这些方法可以根据不同的需求选择和组合使用,以实现对数据框中特定数据的查找和筛选。2.删除某列或某行代表标签所在级别,默认为none在pandas中,可以使用以下方法删除某列或某行:其中,'column_name'为要删除的列名,axis=1表示按列操作,inplace=True表示在原始数据上进行修改。其中,row_index为要删除的行索引,axis=0表示按行操作,inplace=True表示在原始数据上进行修改。 阅读详情

相关推荐

pandas数据处理120题

1.DataFrame基本操作 import numpy as np import pandas as pd import matplotlib.pyplot as plt 1.将下面的字典创建为DataFrame data = {"grammer":["Python","C","Java","GO",np.nan,"SQL","PHP","Python"], "score":[1,...

weixin_39345735的博客 4194

pandas高效读取大文件(csv)方法之-parquet

加载csv数据内存溢出及加载速度过慢的方法

ningyanggege的博客 7852

Pandas数据处理

本文展示了Pandas库中Series和DataFrame的核心操作。首先介绍了Series对象的创建、索引访问、数据统计、筛选排序等功能。然后演示了DataFrame的基本操作,包括数据查看、排序筛选、缺失值处理、数据合并等。最后补充了分组聚合、透视表、时间序列处理等高级功能。这些操作涵盖了Pandas数据处理的主要方法,包括数据清洗、转换和分析等常见任务,为数据分析和处理提供了实用参考。

Ming_chao的博客 1463

【免费下载】 ParquetViewer: 数据工程师的利器,探索Parquet文件的新窗口

是一个轻量级、高效的开源工具,专为数据工程师和分析师设计,用于查看和理解存储在Parquet文件中的结构化数据。Parquet是一种列式存储格式,常用于大数据处理系统如Apache Hadoop、Spark等,它提供了一种高效的数据压缩和处理机制。而ParquetViewer则为你提供了一个直观的界面,无需编程知识就能直接浏览和分析这些文件。 ## 技术分析 ParquetViewer 使用J...

gitblog_00099的博客 1874

Python数据处理——pandas

文章目录0. 基本概念Series(一)创建Series(二)Series的简单操作DataFrame(一)创建DataFrame1. 数据选取2. 加载数据3. 排序与合并4. 数据汇总5. 时间序列 0. 基本概念 Pandas的数据类型是一张表,可以把Pandas理解为内存型的数据库。 import pandas as pd Series:列 DataFrame:表 Series (一)创建Series 1. 使用列表list创建Series (1)默认列表索引从0 - n-1 # 使用列表List

LongXinKou的博客 4148

100个pandas数据处理技巧

大家好,我是Peter~Pandas 是一个强大的 Python 数据分析库,它提供了非常灵活和高效的方式来处理时间序列数据。在Pandas中,有许多强大的数据处理技巧可以帮助你高效地分析和操作数据。以下是100个Pandas数据处理技巧的简要介绍和相应的Python代码示例。每个示例都会尽量简洁,由浅入深,希望对大家有所帮助。觉得不错的话,欢迎点赞、收藏、转发~ 2. 读取CSV文件 3. 查看数据前几行 4. 查看数据列信息 5. 查看数据基本信息 6. 查看数据描述统计信息 7. 选择单列

尤尔小屋 1181

python Pandas数据处理

Pandas是Python中最强大的数据处理工具,广泛应用于数据清洗、分析和可视化。本文介绍了Pandas的核心数据结构和功能:Series一维数组和DataFrame二维表格,以及数据读取、清洗、转换、分组聚合等操作方法。通过一个实际案例演示了从数据加载、缺失值处理、时间转换到统计分析的全流程,展示了Pandas如何高效完成数据处理任务。作为Python生态系统的关键组件,Pandas极大提升了数据处理的效率和便捷性,是数据科学工作中不可或缺的工具。

unicrom的博客 830

和鲸社区 Pandas进阶修炼120题——第一期 Pandas基础、第二期 Pandas数据处理

pandas进阶修炼120题 用120道习题学习Pandas数据处理

m0_71361876的博客 2222

Pandas数据处理简明教程

在本章中,我们介绍了Pandas的基本数据结构、数据读取与写入、数据选择与操作、数据清洗、数据分组与聚合、数据合并与连接以及时间序列数据。这些知识是进行数据分析的基础,希望你能熟练掌握。在下一章中,我们将学习如何使用Pandas进行更高级的数据分析。

A15216110998的专栏 904

Pandas数据处理库综合指南

Pandas是一个开源的Python数据分析库,提供了高性能、易用的数据结构和数据分析工具。它的设计灵感来自于R语言的data.frame,专门用于处理结构化数据,广泛应用于金融、统计、社会科学、工程等领域。聚合函数是数据分析中的核心工具,它们允许我们对分组后的数据集执行计算,如求和、平均、计数、最大值和最小值等。Pandas库提供了一系列内置的聚合函数,方便用户进行数据聚合分析。这里我们详细介绍几个常用的聚合函数:mean(): 计算分组后的数值字段的平均值。sum()

weixin_31176789的博客 852

ParquetViewer:用于查看和查询Apache Parquet文件的简单Windows桌面应用程序

实木复合地板查看器 一个简单的Windows桌面应用程序,用于查看和查询Apache Parquet文件。 另请查阅Wiki以获取详细的用户指南: : 概括 这是我创建的一种快速而肮脏的实用程序,可以轻松地在Windows台式机上查看Apache Parquet文件。 如果您想添加任何新功能,请随时发送请求请求。 一些主要功能: 在文件块上运行简单的类似SQL的查询 为打开的文件生成ansi sql模式 局限性 此应用程序只能打开运行该应用程序的Windows计算机上的Parquet文件。 它无法连接到HDFS来读取镶木地板数据。 目前不支持结构,数组和映射之类的复杂类型。 下载 预编译的版本可以在这里找到: : 访问Wiki了解有关如何使用该实用程序的详细信息: : 技术细节 该项目的最新版本是使用Visual Studio 2019和.NET 4.6.1用C#编

pandas数据处理

单点突破,pandas数据处理操作。

weixin_44921938的博客 499

ParquetViewer_v2.3.6,可以直接查看parquet文件,并对里面的数据进行简单查询。

ParquetViewer_v2.3.6,可以直接查看parquet文件,并对里面的数据进行简单查询。

盘点一个Pandas数据处理问题

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤孤舟蓑笠翁,独钓寒江雪。大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【黑科技·鼓包】问了一个pandas数据处理的问题。问题如下:请教个问题,df['区划编码'] = df['区划编码'].replace(f"420113000000", "'420113...

pdcfighting的博客 1143

基于osgEarth的二维态势中时变对象的绘制方法

在态势系统中,卫星、飞机的轨迹、覆盖等的几何数据随时间改变,称之为时变对象。在以OSGEarth实现的二维态势中,如果利用OSGEarth的预定义线、面类型处理这种几何数据的动态改变,则导致效率极具降低。介绍了此问题并给出解决技巧。

eyepeak的博客 2090

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头,才能利用专业设备,里面找到,镜像,把内容数据恢复出来。 1.说一下经历,借用的别人移动硬盘,去帮别人维修,拷数据出来,别人的文件,数据比较多,且复杂,而且是在PE系统,接口什么的是2.0,没有很好的思考就全选复制拷贝了; 2,拷贝的过程,极其慢,文件多,且文件有损坏,移动硬盘一直处于通电的状态,大概从下午,两点多开始100多G的数据,一直卡住,到,晚上7 。8点拷完还是没拷完。打开的时候就已经,就一直

weixin_43766920的博客 4303

【Python】Pandas:数据处理

Pandas 是一个功能强大且广泛使用的 Python 数据分析库,特别适用于处理结构化数据。它提供了高效的数据结构和分析工具,能够使数据处理和分析变得更加简单和直观。

2303_80346267的博客 1859

NAT反向代理技术的实现(外网访问内网)

NAT反向代理技术的实现(外网访问内网)(版权所有,引用 请联系作者,注明出处) NAT技术是网络中的重要应用之一。当有一个场景:内网搭建了服务器,需要外网访问时,可以借助NAT映射来实现。如:单位建立了一个Web服务器,我们希望在员工回家之后,依然可以访问到它,那怎么实现呢? 下面的拓扑图,就用来示范这个应用反面场景的实现过程。 一、题目要求: 地址配置如图。使用静态路由: 1、配置右侧交换机2950T,实现单臂路由; 2、配置路由使网络连通; 3、配置NAT访问,实现外网对风网服务器的

joyousmime的博客 8488

pandas数据处理套路

qiu12345677的博客 114

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

数字信号完整性分析:眼图原理与应用指南

眼图是数字信号完整性分析中的核心工具,通过将数字信号在时间域上多次叠加形成类似人眼的图形,直观反映信号质量。其原理基于时钟恢复和波形叠加,能有效展示信号的统计特性,包括上升/下降时间、过冲/下冲等关键参数。在高速数字电路设计中,眼图分析对于评估信号完整性、调试抖动问题至关重要,广泛应用于DDR接口、高速串行链路等场景。通过合理设置示波器参数和采用均衡技术,工程师可以优化眼图表现,提升系统可靠性。本文结合DDR4内存等实际案例,详解眼图的测量方法与常见问题解决方案。

weixin_35459464的博客 343

Pandas进行数据处理

使用pandas进行数据处理,解放人力!拒绝hp工作! import pandas as pd import numpy as np df1 = pd.read_csv('boy_115-215.csv',encoding='gb18030') #Read a comma-separated values (csv) file into DataFrame. df2 = pd.read_csv('boy_Final.csv',encoding='gb18030') #一种编码方式,文件以csv

tiansch的博客 310

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

算法大师! 626
上一篇: GAP: Generalizable Approximate Graph Partitioning Framework模型
下一篇: python数据处理
肥肥大大只丶
博客等级 码龄8年 162粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值