跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Pandas 的性能问题
未分類
11 1 月 2021

Pandas 的性能问题

Pandas 的性能问题

資深大佬 : shuangchengsun 0

DataFrame 的 append 操作每次都会返回一个全新的对象,势必会有大量的内存拷贝,这样岂不是会严重拉胯新能,还是说有新的姿势构造 DataFrame 。小白跪求大佬赐教。

大佬有話說 (22)

  • 資深大佬 : lewinlan

    我记得有一个参数,可以指定原地操作。

  • 資深大佬 : wuwukai007

    concat

  • 資深大佬 : bilibilifi

    list 里搞好了再转?我记得 dataframe 为了优化性能会把数据放在连续的内存里

  • 資深大佬 : nthhdy

    我不了解啊,瞎说的。但我感觉它不会拷贝内存的,有可能是写时复制的。可以读下源码看看。

  • 資深大佬 : crystom

    懒操作吧

  • 資深大佬 : allAboutDbmss

    可以试试这个: https://github.com/modin-project/modin

  • 資深大佬 : milkpuff

    pandas 直接操作非常慢,一般拼接都 append 到 list 里面,最后一次性 concat 。
    pandas 索引、切片、拼接、赋值等都不适合频繁调用,转换成 numpy 效率可以极大提升

  • 資深大佬 : Rorysky

    猛男都直接用原生数据类型

  • 資深大佬 : qile1

    @milkpuff 多谢回复,我都是 for 遍历逐行附值到 pandas 里面,后期得修改下

  • 資深大佬 : lixuda

    @qile1 apply 方式

  • 資深大佬 : myCupOfTea

    数据量太大确实会有性能问题啊
    底层是 numpy 吧,numpy concat 数据量大的阵列确实会很慢

  • 資深大佬 : lithiumii

    append 确实慢
    如果是一堆小 df 建议 concat 一个 list
    如果是一行一行的可以每行先存成一个 dict 然后 append 到 list 里,最后转成 df

  • 主 資深大佬 : shuangchengsun

    @bilibilifi 我现在的数据阵列是 rows 是一亿五千万左右,columns 是 12,有点太庞大了,用 list 的话能撑住么?

  • 主 資深大佬 : shuangchengsun

    @allAboutDbmss 谢谢推荐,我去看看这个工具

  • 主 資深大佬 : shuangchengsun

    @myCupOfTea 数据量确实很大,rows 差不多一亿五千万的样子。

  • 主 資深大佬 : shuangchengsun

    @lithiumii 感谢指导,我这就去试试。

  • 資深大佬 : outoftimeerror

    用 spark dataframe

  • 資深大佬 : volvo007

    @shuangchengsun list 存的是对象指针,不是实际的对象……

    对于这个体量的数据,可以考虑用 vaex 这个库

    如果上下文操作不复杂且需要持久化的话,强烈安利 PostgreSQL 数据库来处理,超好用,真香

  • 資深大佬 : weeevv

    Dask 或者直接上数据库吧。

  • 資深大佬 : dlsflh

    试试看并行的 pandas modin ?

  • 資深大佬 : ElliotQi

    Pandas 的性能问题

  • 主 資深大佬 : shuangchengsun

    @volvo007 感谢指导

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具