我有一个大的数据帧,我需要根据不同的情况进行分析,我正在寻找一种方法(很容易)加快进程,如果可能的话。你知道吗
基本上我的代码是这样的(真的,真的简化了)
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))
dict_x = {}
for x in range(0, 10):
dict_y = {}
for y in range(0, 10):
for i in range(0, len(df)):
df.loc[i, 'E'] = ((df.loc[i, 'A'] * df.loc[i, 'B']) * x) + y
dict_y[y] = df
dict_x[x] = dict_y
由于场景太多,运行起来需要很长时间。每个场景都独立于其他场景。有没有办法提高速度?比如让python能够同时使用多个核心/分析多个场景,或者其他什么
我看了一下多处理模块,但不明白如何应用它。我对Python还很陌生,所以我可能缺少一些基本的东西。你知道吗
****编辑**:更新的代码示例,希望更容易理解我想要实现的目标。由于系统上需要的传感器和计算的数量,实际的代码要长得多,而且一个月内每分钟都有数据。你知道吗
你可以做两件事:
首先,矢量化:使用numpy库进行循环乘法/加法和其他数学运算。这将使您的时间减少1000倍(可能会更大)
您可以处理的另一个领域是相互独立的数据并行处理。请参阅多线程和多处理文档。你知道吗
相关问题 更多 >
编程相关推荐