百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

别说你会用Pandas

liuian 2025-02-15 16:31 32 浏览

说到Python处理大数据集,可能会第一时间想到Numpy或者Pandas。

这两个库使用场景有些不同,Numpy擅长于数值计算,因为它基于数组来运算的,数组在内存中的布局非常紧凑,所以计算能力强。但Numpy不适合做数据处理和探索,缺少一些现成的数据处理函数。

而Pandas的特点就是很适合做数据处理,比如读写、转换、连接、去重、分组聚合、时间序列、可视化等等,但Pandas的特点是效率略低,不擅长数值计算。

你可以同时使用Pandas和Numpy分工协作,做数据处理时用Pandas,涉及到运算时用Numpy,它们的数据格式互转也很方便。

目前前言,最多人使用的Python数据处理库仍然是pandas,这里重点说说它读取大数据的一般方式。

Pandas读取大数据集可以采用chunking分块读取的方式,用多少读取多少,不会太占用内存。

import pandas as pd  
  
# 设置分块大小,例如每次读取 10000 行  
chunksize = 10000  
  
# 使用 chunksize 参数分块读取 CSV 文件  
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):  
    # 在这里处理每个 chunk,例如打印每行的信息  
    print(chunk.head())  # 或者其他你需要的操作  
  
    # 如果你需要保存或进一步处理每个 chunk 的数据,可以在这里进行  
    # 例如,你可以将每个 chunk 写入不同的文件,或者对 chunk 进行某种计算并保存结果  

但使用分块读取时也要注意,不要在循环内部进行大量计算或内存密集型的操作,否则可能会消耗过多的内存或降低性能。

其次你可以考虑使用用Pandas读取数据库(如PostgreSQL、SQLite等)或外部存储(如HDFS、Parquet等),这会大大降低内存的压力。

尽管如此,Pandas读取大数据集能力也是有限的,取决于硬件的性能和内存大小,你可以尝试使用PySpark,它是Spark的python api接口。

PySpark提供了类似Pandas DataFrame的数据格式,你可以使用toPandas() 的方法,将 PySpark DataFrame 转换为 pandas DataFrame,但需要注意的是,这可能会将所有数据加载到单个节点的内存中,因此对于非常大的数据集可能不可行)。

相反,你也可以使用 createDataFrame() 方法从 pandas DataFrame 创建一个 PySpark DataFrame。

PySpark处理大数据的好处是它是一个分布式计算机系统,可以将数据和计算分布到多个节点上,能突破你的单机内存限制。

其次,PySpark采用懒执行方式,需要结果时才执行计算,其他时候不执行,这样会大大提升大数据处理的效率。

from pyspark.sql import SparkSession  
  
# 创建一个 SparkSession 对象  
spark = SparkSession.builder \  
    .appName("Big Data Processing with PySpark") \  
    .getOrCreate()  
  
# 读取 CSV 文件  
# 假设 CSV 文件名为 data.csv,并且有一个名为 'header' 的表头  
# 你需要根据你的 CSV 文件的实际情况修改这些参数  
df = spark.read.csv("path_to_your_csv_file/data.csv", header=True, inferSchema=True)  
  
# 显示数据集的前几行  
df.show(5)  
  
# 对数据进行一些转换  
# 例如,我们可以选择某些列,并对它们应用一些函数  
# 假设我们有一个名为 'salary' 的列,并且我们想要增加它的值(仅作为示例)  
df_transformed = df.withColumn("salary_increased", df["salary"] * 1.1)  
  
# 显示转换后的数据集的前几行  
df_transformed.show(5)  
  
# 将结果保存到新的 CSV 文件中  
# 注意:Spark 默认不会保存表头到 CSV,你可能需要手动处理这个问题  
df_transformed.write.csv("path_to_save_transformed_csv/transformed_data", header=True)  
  
# 停止 SparkSession  
spark.stop()

如果你不会使用PySpark,可以考虑Pandas的拓展库,比如modin、dask、polars等,它们提供了类似pandas的数据类型和函数接口,但使用多进程、分布式等方式来处理大数据集。

modin库

import modin.pandas as pd  
  
# 读取 CSV 文件  
df = pd.read_csv('path_to_your_csv_file.csv')  
  
# 显示前几行  
print(df.head())

Dask库

import dask.dataframe as dd  
  
# 读取 CSV 文件  
df = dd.read_csv('path_to_your_csv_file.csv')  
  
# 触发计算并显示前几行(注意这里使用的是 compute 方法)  
print(df.head().compute())

Polars库

import polars as pl
  
# 读取 CSV 文件  
df = pl.read_csv('path_to_your_csv_file.csv')  
  
# 显示前几行
print(df.head())

这几个库的好处是,使用成本很低,基本和pandas操作方式一样,但又能很好的处理大数据。

所以说Pandas是完全能胜任处理大数据集的,它目前的周边生态库非常丰富。

相关推荐

搭建一个20人的办公网络(适用于20多人的小型办公网络环境)

楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...

笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)

1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...

汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)

使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...

xpsp3安装版系统下载(windowsxpsp3安装教程)

xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...

没有备份的手机数据怎么恢复

手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。  2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。  3、...

电脑怎么激活windows11专业版

win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...

华为手机助手下载官网(华为手机助手app下载专区)

华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...

光纤线断了怎么接(宽带光纤线断了怎么接)

宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...

深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
win7旗舰版和专业版区别(win7旗舰版跟专业版)

1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...

万能连接钥匙(万能wifi连接钥匙下载)

1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...

雨林木风音乐叫什么(雨林木风是啥)

雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...

aics6序列号永久序列号(aics6破解序列号)

关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...

win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)

答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...