当前位置:首页 > 科技  > 软件

说到Python处理大数据集,别说你会用Pandas

来源: 责编: 时间:2024-05-20 17:54:25 214观看
导读说到Python处理大数据集,可能会第一时间想到Numpy或者Pandas。这两个库使用场景有些不同,Numpy擅长于数值计算,因为它基于数组来运算的,数组在内存中的布局非常紧凑,所以计算能力强。但Numpy不适合做数据处理和探索,缺少一

gNl28资讯网——每日最新资讯28at.com

说到Python处理大数据集,可能会第一时间想到Numpy或者Pandas。gNl28资讯网——每日最新资讯28at.com

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

而Pandas的特点就是很适合做数据处理,比如读写、转换、连接、去重、分组聚合、时间序列、可视化等等,但Pandas的特点是效率略低,不擅长数值计算。gNl28资讯网——每日最新资讯28at.com

你可以同时使用Pandas和Numpy分工协作,做数据处理时用Pandas,涉及到运算时用Numpy,它们的数据格式互转也很方便。gNl28资讯网——每日最新资讯28at.com

目前前言,最多人使用的Python数据处理库仍然是pandas,这里重点说说它读取大数据的一般方式。gNl28资讯网——每日最新资讯28at.com

Pandas读取大数据集可以采用chunking分块读取的方式,用多少读取多少,不会太占用内存。gNl28资讯网——每日最新资讯28at.com

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 进行某种计算并保存结果

但使用分块读取时也要注意,不要在循环内部进行大量计算或内存密集型的操作,否则可能会消耗过多的内存或降低性能。gNl28资讯网——每日最新资讯28at.com

其次你可以考虑使用用Pandas读取数据库(如PostgreSQL、SQLite等)或外部存储(如HDFS、Parquet等),这会大大降低内存的压力。gNl28资讯网——每日最新资讯28at.com

尽管如此,Pandas读取大数据集能力也是有限的,取决于硬件的性能和内存大小,你可以尝试使用PySpark,它是Spark的python api接口。gNl28资讯网——每日最新资讯28at.com

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

相反,你也可以使用 createDataFrame() 方法从 pandas DataFrame 创建一个 PySpark DataFrame。gNl28资讯网——每日最新资讯28at.com

PySpark处理大数据的好处是它是一个分布式计算机系统,可以将数据和计算分布到多个节点上,能突破你的单机内存限制。gNl28资讯网——每日最新资讯28at.com

其次,PySpark采用懒执行方式,需要结果时才执行计算,其他时候不执行,这样会大大提升大数据处理的效率。gNl28资讯网——每日最新资讯28at.com

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的数据类型和函数接口,但使用多进程、分布式等方式来处理大数据集。gNl28资讯网——每日最新资讯28at.com

modin库gNl28资讯网——每日最新资讯28at.com

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

Dask库gNl28资讯网——每日最新资讯28at.com

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

Polars库gNl28资讯网——每日最新资讯28at.com

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

这几个库的好处是,使用成本很低,基本和pandas操作方式一样,但又能很好的处理大数据。gNl28资讯网——每日最新资讯28at.com

所以说Pandas是完全能胜任处理大数据集的,它目前的周边生态库非常丰富。gNl28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-89403-0.html说到Python处理大数据集,别说你会用Pandas

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 记一次 .NET 某酒店后台服务卡死分析

下一篇: 跨域详解及Spring Boot 3中的跨域解决方案

标签:
  • 热门焦点
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾“低价”口号。而过去与他们错位竞争的拼多多,靠
  • 信通院:小米、华为等11家应用商店基本完成APP签名及验签工作

    中国信通院表示,目前,小米、华为、OPPO、vivo、360手机助手、百度手机助手、应用宝、豌豆荚和努比亚等9家应用商店,以及抖音和快手2家新型应用分发平
  • 华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    IT之家 7 月 31 日消息,华为今日公布了 HDC.Together 开发者大会 2023 的详细日程。整场大会将于 8 月 4 日-6 日之间举行,届时将发布最新一代鸿蒙 H
Top