![]() | 1 lewinlan 2021-01-08 18:46:46 +08:00 via Android 我记得有一个参数,可以指定原地操作。 |
![]() | 2 wuwukai007 2021-01-08 19:18:24 +08:00 via Android concat |
3 bilibilifi 2021-01-08 19:25:11 +08:00 via iPhone list 里搞好了再转?我记得 dataframe 为了优化性能会把数据放在连续的内存里 |
![]() | 4 nthhdy 2021-01-08 22:04:33 +8:00 我不了解啊,瞎说的。但我感觉它不会拷贝内存的,有可能是写时复制的。可以读下源码看看。 |
5 crystom 2021-01-08 22:10:02 +08:00 懒操作吧 |
6 allAboutDbmss 2021-01-08 22:18:30 +08:00 |
![]() | 7 milkpuff 2021-01-09 02:02:19 +08:00 pandas 直接操作非常慢,一般拼接都 append 到 list 里面,最后一次性 concat 。 pandas 索引、切片、拼接、赋值等都不适合频繁调用,转换成 numpy 效率可以极大提升 |
![]() | 8 Rorysky 2021-01-09 02:07:44 +08:00 猛男都直接用原生数据类型 |
![]() | 11 myCupOfTea 2021-01-09 08:46:55 +08:00 数据量太大确实会有性能问题啊 底层是 numpy 吧,numpy concat 数据量大的阵列确实会很慢 |
![]() | 12 lithiumii 2021-01-09 09:50:21 +08:00 via Android append 确实慢 如果是一堆小 df 建议 concat 一个 list 如果是一行一行的可以每行先存成一个 dict 然后 append 到 list 里,最后转成 df |
![]() | 13 shuangchengsun OP @bilibilifi 我现在的数据阵列是 rows 是一亿五千万左右,columns 是 12,有点太庞大了,用 list 的话能撑住么? |
![]() | 14 shuangchengsun OP @allAboutDbmss 谢谢推荐,我去看看这个工具 |
![]() | 15 shuangchengsun OP @myCupOfTea 数据量确实很大,rows 差不多一亿五千万的样子。 |
![]() | 16 shuangchengsun OP @lithiumii 感谢指导,我这就去试试。 |
17 outoftimeerror 2021-01-09 14:18:56 +08:00 用 spark dataframe |
18 volvo007 2021-01-09 16:14:24 +08:00 @shuangchengsun list 存的是对象指针,不是实际的对象…… 对于这个体量的数据,可以考虑用 vaex 这个库 如果上下文操作不复杂且需要持久化的话,强烈安利 PostgreSQL 数据库来处理,超好用,真香 |
19 weeevv 2021-01-09 16:20:41 +08:00 Dask 或者直接上数据库吧。 |
20 dlsflh 2021-01-09 16:54:57 +08:00 via Android 试试看并行的 pandas modin ? |
![]() | 21 ElliotQi 2021-01-09 19:34:13 +08:00 |
![]() | 22 shuangchengsun OP @volvo007 感谢指导 |