Pandas新增一列并按条件赋值是什么意思?

Pandas新增一列并按条件赋值是什么意思?,第1张

DataFrame新增一列:如果list为空,赋值为0;如果list列不为空,将amount列中对应的行值赋值到新列。

pandas是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地 *** 作大型数据集所需的工具。

pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析运搏档环境的重要因素之一。

Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。

Pandas最初被作为金融数据分析旁乱工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语银洞,在Pandas中也提供了panel的数据类型。

一般说来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做分析。。。

利用第三方库明和:openpyxl 可以携颂实现,示例代激隐盯码如下:

from openpyxl import Workbook

wb = Workbook()

ws = wb['sheet1']

ws['C2'].value = 100


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

原文地址: https://outofmemory.cn/bake/11991940.html

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

发表评论

登录后才能评论

评论列表(0条)

保存