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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

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

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年6月1日至6月30日,僅限國內市場。第一名:魅族20 Pro好評率:95%5月份的時候魅族20 Pro就是
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學好IO流,對各種流的概念,云里霧里的,不求甚解。用到的時候,現百度,功能雖然實現了,但是為什么用這個?不知道。更別說效率問題了~下次再遇到,
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • OPPO K11樣張首曝:千元機影像“卷”得真不錯!

    一直以來,OPPO K系列機型都保持著較為均衡的產品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購買

    2022年1月份在國際消費電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現在已經可以購買了,這款筆記本電腦被譽為世界上最薄的 14 英寸游戲筆
Top 主站蜘蛛池模板: 江口县| 汽车| 通榆县| 南宁市| 荆门市| 晴隆县| 大丰市| 夏河县| 嘉禾县| 肃南| 彩票| 宿迁市| 皋兰县| 伊金霍洛旗| 剑川县| 新安县| 新野县| 尉犁县| 万盛区| 常州市| 宜都市| 扎兰屯市| 辉县市| 沅江市| 宜君县| 新郑市| 柯坪县| 偏关县| 雅安市| 临邑县| 连江县| 乌海市| 湖南省| 微山县| 青州市| 玉溪市| 嘉善县| 伊春市| 高碑店市| 屯昌县| 顺昌县|