日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

說到Python處理大數據集,別說你會用Pandas

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

Oam28資訊網——每日最新資訊28at.com

說到Python處理大數據集,可能會第一時間想到Numpy或者Pandas。Oam28資訊網——每日最新資訊28at.com

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

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

你可以同時使用Pandas和Numpy分工協作,做數據處理時用Pandas,涉及到運算時用Numpy,它們的數據格式互轉也很方便。Oam28資訊網——每日最新資訊28at.com

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

Pandas讀取大數據集可以采用chunking分塊讀取的方式,用多少讀取多少,不會太占用內存。Oam28資訊網——每日最新資訊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 進行某種計算并保存結果

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

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

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

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

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

PySpark處理大數據的好處是它是一個分布式計算機系統,可以將數據和計算分布到多個節點上,能突破你的單機內存限制。Oam28資訊網——每日最新資訊28at.com

其次,PySpark采用懶執行方式,需要結果時才執行計算,其他時候不執行,這樣會大大提升大數據處理的效率。Oam28資訊網——每日最新資訊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的數據類型和函數接口,但使用多進程、分布式等方式來處理大數據集。Oam28資訊網——每日最新資訊28at.com

modin庫Oam28資訊網——每日最新資訊28at.com

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

Dask庫Oam28資訊網——每日最新資訊28at.com

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

Polars庫Oam28資訊網——每日最新資訊28at.com

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

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

所以說Pandas是完全能勝任處理大數據集的,它目前的周邊生態庫非常豐富。Oam28資訊網——每日最新資訊28at.com

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

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

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

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

標簽:
  • 熱門焦點
  • Mate60手機殼曝光 致敬自己的經典設計

    8月3日消息,今天下午博主數碼閑聊站帶來了華為Mate60的第三方手機殼圖,可以讓我們在真機發布之前看看這款華為全新旗艦的大致輪廓。從曝光的圖片看,Mate 60背后攝像頭面積依然
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網課,網課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業又有了新的發展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • 6月安卓手機好評榜:魅族20 Pro蟬聯冠軍

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年6月1日至6月30日,僅限國內市場。第一名:魅族20 Pro好評率:95%5月份的時候魅族20 Pro就是
  • 印度登月最關鍵一步!月船三號今晚進入環月軌道

    8月5日消息,據印度官方消息,月船三號將于北京時間今晚21時30分左右開始近月制動進入環月軌道。這是該探測器能夠成功的最關鍵步驟之一,如果成功將開始圍
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 三言兩語說透設計模式的藝術-單例模式

    寫在前面單例模式是一種常用的軟件設計模式,它所創建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統中的其他對象共享,從而減少
  • 谷歌KDD'23工作:如何提升推薦系統Ranking模型訓練穩定性

    谷歌在KDD 2023發表了一篇工作,探索了推薦系統ranking模型的訓練穩定性問題,分析了造成訓練穩定性存在問題的潛在原因,以及現有的一些提升模型穩定性方法的不足,并提出了一種新
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
Top 主站蜘蛛池模板: 西和县| 万年县| 封开县| 昌黎县| 皮山县| 南华县| 乌苏市| 景洪市| 雷山县| 宁德市| 申扎县| 临颍县| 淳化县| 正镶白旗| 三原县| 外汇| 乌拉特后旗| 蕲春县| 曲靖市| 武强县| 淮北市| 涪陵区| 五峰| 区。| 旬阳县| 崇阳县| 河间市| 斗六市| 沿河| 宝丰县| 浠水县| 邢台市| 夏河县| 锡林浩特市| 清水县| 漳州市| 历史| 长泰县| 雷波县| 临城县| 阳山县|