AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

說到Python處理大數(shù)據(jù)集,別說你會用Pandas

來源: 責(zé)編: 時間:2024-05-20 17:54:25 151觀看
導(dǎo)讀說到Python處理大數(shù)據(jù)集,可能會第一時間想到Numpy或者Pandas。這兩個庫使用場景有些不同,Numpy擅長于數(shù)值計算,因為它基于數(shù)組來運算的,數(shù)組在內(nèi)存中的布局非常緊湊,所以計算能力強(qiáng)。但Numpy不適合做數(shù)據(jù)處理和探索,缺少一

rIj28資訊網(wǎng)——每日最新資訊28at.com

說到Python處理大數(shù)據(jù)集,可能會第一時間想到Numpy或者Pandas。rIj28資訊網(wǎng)——每日最新資訊28at.com

這兩個庫使用場景有些不同,Numpy擅長于數(shù)值計算,因為它基于數(shù)組來運算的,數(shù)組在內(nèi)存中的布局非常緊湊,所以計算能力強(qiáng)。但Numpy不適合做數(shù)據(jù)處理和探索,缺少一些現(xiàn)成的數(shù)據(jù)處理函數(shù)。rIj28資訊網(wǎng)——每日最新資訊28at.com

而Pandas的特點就是很適合做數(shù)據(jù)處理,比如讀寫、轉(zhuǎn)換、連接、去重、分組聚合、時間序列、可視化等等,但Pandas的特點是效率略低,不擅長數(shù)值計算。rIj28資訊網(wǎng)——每日最新資訊28at.com

你可以同時使用Pandas和Numpy分工協(xié)作,做數(shù)據(jù)處理時用Pandas,涉及到運算時用Numpy,它們的數(shù)據(jù)格式互轉(zhuǎn)也很方便。rIj28資訊網(wǎng)——每日最新資訊28at.com

目前前言,最多人使用的Python數(shù)據(jù)處理庫仍然是pandas,這里重點說說它讀取大數(shù)據(jù)的一般方式。rIj28資訊網(wǎng)——每日最新資訊28at.com

Pandas讀取大數(shù)據(jù)集可以采用chunking分塊讀取的方式,用多少讀取多少,不會太占用內(nèi)存。rIj28資訊網(wǎng)——每日最新資訊28at.com

import pandas as pd    # 設(shè)置分塊大小,例如每次讀取 10000 行  chunksize = 10000    # 使用 chunksize 參數(shù)分塊讀取 CSV 文件  for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):      # 在這里處理每個 chunk,例如打印每行的信息      print(chunk.head())  # 或者其他你需要的操作        # 如果你需要保存或進(jìn)一步處理每個 chunk 的數(shù)據(jù),可以在這里進(jìn)行      # 例如,你可以將每個 chunk 寫入不同的文件,或者對 chunk 進(jìn)行某種計算并保存結(jié)果

但使用分塊讀取時也要注意,不要在循環(huán)內(nèi)部進(jìn)行大量計算或內(nèi)存密集型的操作,否則可能會消耗過多的內(nèi)存或降低性能。rIj28資訊網(wǎng)——每日最新資訊28at.com

其次你可以考慮使用用Pandas讀取數(shù)據(jù)庫(如PostgreSQL、SQLite等)或外部存儲(如HDFS、Parquet等),這會大大降低內(nèi)存的壓力。rIj28資訊網(wǎng)——每日最新資訊28at.com

盡管如此,Pandas讀取大數(shù)據(jù)集能力也是有限的,取決于硬件的性能和內(nèi)存大小,你可以嘗試使用PySpark,它是Spark的python api接口。rIj28資訊網(wǎng)——每日最新資訊28at.com

PySpark提供了類似Pandas DataFrame的數(shù)據(jù)格式,你可以使用toPandas() 的方法,將 PySpark DataFrame 轉(zhuǎn)換為 pandas DataFrame,但需要注意的是,這可能會將所有數(shù)據(jù)加載到單個節(jié)點的內(nèi)存中,因此對于非常大的數(shù)據(jù)集可能不可行)。rIj28資訊網(wǎng)——每日最新資訊28at.com

相反,你也可以使用 createDataFrame() 方法從 pandas DataFrame 創(chuàng)建一個 PySpark DataFrame。rIj28資訊網(wǎng)——每日最新資訊28at.com

PySpark處理大數(shù)據(jù)的好處是它是一個分布式計算機(jī)系統(tǒng),可以將數(shù)據(jù)和計算分布到多個節(jié)點上,能突破你的單機(jī)內(nèi)存限制。rIj28資訊網(wǎng)——每日最新資訊28at.com

其次,PySpark采用懶執(zhí)行方式,需要結(jié)果時才執(zhí)行計算,其他時候不執(zhí)行,這樣會大大提升大數(shù)據(jù)處理的效率。rIj28資訊網(wǎng)——每日最新資訊28at.com

from pyspark.sql import SparkSession    # 創(chuàng)建一個 SparkSession 對象  spark = SparkSession.builder /      .appName("Big Data Processing with PySpark") /      .getOrCreate()    # 讀取 CSV 文件  # 假設(shè) CSV 文件名為 data.csv,并且有一個名為 'header' 的表頭  # 你需要根據(jù)你的 CSV 文件的實際情況修改這些參數(shù)  df = spark.read.csv("path_to_your_csv_file/data.csv", header=True, inferSchema=True)    # 顯示數(shù)據(jù)集的前幾行  df.show(5)    # 對數(shù)據(jù)進(jìn)行一些轉(zhuǎn)換  # 例如,我們可以選擇某些列,并對它們應(yīng)用一些函數(shù)  # 假設(shè)我們有一個名為 'salary' 的列,并且我們想要增加它的值(僅作為示例)  df_transformed = df.withColumn("salary_increased", df["salary"] * 1.1)    # 顯示轉(zhuǎn)換后的數(shù)據(jù)集的前幾行  df_transformed.show(5)    # 將結(jié)果保存到新的 CSV 文件中  # 注意:Spark 默認(rèn)不會保存表頭到 CSV,你可能需要手動處理這個問題  df_transformed.write.csv("path_to_save_transformed_csv/transformed_data", header=True)    # 停止 SparkSession  spark.stop()

如果你不會使用PySpark,可以考慮Pandas的拓展庫,比如modin、dask、polars等,它們提供了類似pandas的數(shù)據(jù)類型和函數(shù)接口,但使用多進(jìn)程、分布式等方式來處理大數(shù)據(jù)集。rIj28資訊網(wǎng)——每日最新資訊28at.com

modin庫rIj28資訊網(wǎng)——每日最新資訊28at.com

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

Dask庫rIj28資訊網(wǎng)——每日最新資訊28at.com

import dask.dataframe as dd    # 讀取 CSV 文件  df = dd.read_csv('path_to_your_csv_file.csv')    # 觸發(fā)計算并顯示前幾行(注意這里使用的是 compute 方法)  print(df.head().compute())

Polars庫rIj28資訊網(wǎng)——每日最新資訊28at.com

import polars as pl  # 讀取 CSV 文件  df = pl.read_csv('path_to_your_csv_file.csv')    # 顯示前幾行print(df.head())

這幾個庫的好處是,使用成本很低,基本和pandas操作方式一樣,但又能很好的處理大數(shù)據(jù)。rIj28資訊網(wǎng)——每日最新資訊28at.com

所以說Pandas是完全能勝任處理大數(shù)據(jù)集的,它目前的周邊生態(tài)庫非常豐富。rIj28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-89403-0.html說到Python處理大數(shù)據(jù)集,別說你會用Pandas

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 記一次 .NET 某酒店后臺服務(wù)卡死分析

下一篇: 跨域詳解及Spring Boot 3中的跨域解決方案

標(biāo)簽:
  • 熱門焦點
Top