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

别说你会用Pandas_pandas常用函数

liuian 2025-02-16 21:58 10 浏览

说到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是完全能胜任处理大数据集的,它目前的周边生态库非常丰富。

相关推荐

C# - StreamWriter与StreamReader 读写文件 101

读写文本文件的方式:1)File静态类的File.ReadAllLines();与File.WriteAllLines();方法进行读写2)FileStream实例类的对象fs.Read();与fs....

第5天:文件操作——与真实世界连接

程序,不只是屏幕上跑,真正有用的程序,能处理文件。今天学习最基础的文件读写:#写入文件withopen('hello.txt','w',encoding=&#...

C语言数据输出和输入介绍

在C语言中,数据的输出和输入是程序与用户或外部环境进行交互的重要方式之一。通过数据的输出,程序可以向用户展示信息或结果;通过数据的输入,程序可以获取用户提供的数据或参数。本文将深入介绍C语言中数据输出...

Python 中Print() 函数的秘密!你知道吗

print()函数通常是初学者遇到的第一个Python函数。它是一个基本工具,是进入编程世界的初始门户。它允许开发人员在程序执行期间展示信息、变量和消息。然而,尽管print()函数无处不...

解决U盘exe病毒,exe病毒查杀

U盘exe病毒难以清除,即使被杀毒软件删除也会复活,相当顽固。我曾深受其害,经过多次尝试,终于找到解决办法。若此方法对您有用,请记得点个赞支持。1、U盘中毒后,根目录下的文件夹会变成隐藏状态,无法直...

利用python数据分析,获取双色球历史中奖信息!(内含详细代码)

前言:毫无例外,基本上是所有人都有一颗中奖的心,不管是有钱的,还是没钱的!你们说对吗?对于技术人员来说,通过技术分析,可以增加中奖几率,现使用python语言收集历史双色球中奖信息,之后进行预测分析。...

C语言实战之文件复制

在C语言中,复制文件可以通过读取源文件的内容并将其写入目标文件来实现。以下是一个简单的示例程序,演示如何复制文件。示例代码#include<stdio.h>#include<s...

用Python一分钟搞定了本要一晚才能做完的800张奖状海报

随着互联网公司的兴起,编程技术越来越吃香,尤其是Python。其实不用说,你也应该发现了,现在稍微有些粉丝的公众号,都接有Python的广告。这说明了什么?说明真的火!但是我今天不是来推Python的...

手把手教你玩转Copy命令

一.简介COPY命令是Windows操作系统中一个广泛使用的命令行工具,它用于复制文件和目录。与在资源管理器中进行操作不同,COPY命令可以通过指定源文件和目标位置来进行复制,使得它可以自动...

学习VB编程第20天,文件读取写入

今天学习了刘金玉老师VB编程教程的第28期,学习的主要内容是文件读取写入。1.dountil......loop循环语句①语法结构dountil条件表达式的值类型符合条件的要执行的代码.........

新手学Python避坑,学习效率狂飙! 二十一、print()函数

感谢大家对《新手学Python避坑,学习效率狂飙!》系列的点赞、关注和收藏,今天这编是这个系列的第二十一个分享,前面还有二十个,大家可以关注下之前发布的文章。下面是我们今天第三个的分享:在Pytho...

如何用python的requests来下载网页内容保存到txt

如何用python的requests来下载网页内容保存到txtimportrequests#定义目标网页和保存路径url="http://www.5a8.com"fil...

Windows下如何将WSL安装到非C盘?三种实用方法分享!

Windows下如何将WSL安装到非C盘?三种实用方法分享!前言随着微软对Linux支持的不断加强,WSL(WindowsSubsystemforLinux)已成为众多开发者的得力工具。然而,很...

C#程序注册成服务

某些时候我们需要一个程序在电脑开机后就自动启动,无界面运行在后台。比如数据上传功能,我们需要在电脑开机后程序就自动启动,上传我们需要的数据,而不是每次开机都要手动去运行程序。1、新建一个项目,该项目实...

怎么在Python中读取和写入文件?

Python是一种高级编程语言,它提供了许多内置函数和模块,可用于读取和写入文件。读取和写入文件是Python编程中非常基本和必要的操作,因为很多应用程序需要从外部文件中读取数据,或将数据写入外部文件...