python pandas 怎样高效地添加一行数据

python pandas 怎样高效地添加一行数据,第1张

一般说来dataframe就是a set of columns, each column is an array of values. In pandas, the array is one way or another a (maybe variant of) numpy ndarray. 而ndarray本身不存在一种in place append的 *** 作。。。因为它实际上是一段连续内存。。。任何需要改变ndarray长度的 *** 作都涉及分配一段长度合适的新的内存,然后copy。。。这是这类 *** 作慢的原因。。。如果pandas dataframe没有用其他设计减少copy的话,我相信Bren说的"That's probably as efficient as any"是很对的。。。

所以in general, 正如Bren说的。。。Pandas/numpy structures are fundamentally not suited for efficiently growing.

Matti 和 arynaq说的是两种常见的对付这个问题的方法。。。我想Matti实际的意思是把要加的rows收集成起来然后concatenate, 这样只copy一次。arynaq的方法就是预先分配内存比较好理解。。。

如果你真的需要incrementally build a dataframe的话,估计你需要实际测试一下两种方法。。。

我的建议是,如有可能,尽力避免incrementally build a dataframe, 比如用其他data structure 收集齐所有data然后转变成dataframe做分析。。。

python中的list叫做列表,可以通过append方法在列表的末尾添加单个元素

x = [1,2,3]

x.append(4)

或者使用extend方法在列表末位添加多个元素,参数就变成了列表

x.append([4,5,6])

或者使用insert方法在任意位置添加元素,第一个参数是插入元素的位置,第二个参数是插入元素的值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11650605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存