Python 增长字典或增长数据框 - 在循环中追加

标签 python python-3.x pandas

我正在尝试编写代码,在循环中从在线源收集数据,并在每次迭代中使用 pandas 操作这些数据。最初我想我应该在循环外初始化一个字典,获取数据,将字典转换为循环内的数据帧,然后对其执行操作。但是制作字典而不是仅仅制作数据框并附加到循环中的数据框感觉很奇怪。但据我了解,pandas 并不是真正“设计”用于逐个单元更新(而不是矢量更新)。最有效的方法是什么?

import pandas as pd
    d = {'a':[], 'b':[], 'c':[], 'x':[], 'z':[]}
    for i in range(100):
        d['a'].append(f'some info {i}')
        d['b'].append(f'more info {i}')
        d['c'].append(i)
        d['x'].append(i*2)
        d['z'].append(np.nan) # ???

        df = pd.DataFrame(d)
        # Some function that does calculations on df cols and returns df with new cols
        df['z'] = 1 

最佳答案

Pandas 通常用于执行数据操作和数据建模,因此每次在循环中向数据帧添加数据可能效率低下。请注意,这在很大程度上取决于循环中的迭代次数。如果它们与数据帧的最终长度相比非常少,你当然可以这样做。否则,似乎最好在循环内获取字典中的所有数据,当你收集完数据后,你可以将其转换为数据帧进行分析,然后删除字典

关于Python 增长字典或增长数据框 - 在循环中追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57421280/

相关文章:

python - 如何在保持分辨率的同时将 2D float numpy 数组无损保存到灰度图像中?

python - 升级的 python ;我是否必须手动重新安装所有站 pip 包?

java - Java 中 close() 的 Python 等价物是什么?

python - py 安装程序 numpy. EXE在运行时抛出错误

python - 在 python 脚本中使用 awk

python - 有什么办法可以让整数被归类为没有 .0 的整数,而 float 被归类为 float 吗?

python-3.x - 如何将可调用对象作为参数传递给 `functools.partial`

python - Pandas Dataframe 列的条件计算

python - 根据第三列设置列中具有共同值的行的日期

python - 为什么你可以在 Pandas 中做 df.loc(False) ['value' ]?