作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经理代码..
import pandas as pd
import multiprocessing
import time
import MyDF
import WORKER
class Manager():
'Common base class for all Manager'
def __init__(self,Name):
print('Hello Manager..')
self.MDF=MyDF.MYDF(Name);
self.Arg=self.MDF.display();
self.WK=WORKER.Worker(self.Arg); MGR=Manager('event_wise_count') if __name__ == '__main__':
jobs = []
x=5;
for i in range(5):
x=10*i
print('Manager : ',i)
p = multiprocessing.Process(target=MGR.WK.DISPLAY)
jobs.append(p)
p.start()
time.sleep(x);
工作人员代码...
import pandas as pd
import time
class Worker():
'Common base class for all Workers'
empCount = 0
def __init__(self,DF):
self.DF=DF;
print('Hello worker..',self.DF.count())
def DISPLAY(self):
self.DF=self.DF.head(10);
return self.DF
嗨,我正在尝试进行多重处理。我想与所有子进程共享数据帧地址。
因此,在上面的 Manager 类中,我生成了 5 个进程,其中每个子进程都需要使用工作器类的数据帧,并期望每个子进程将共享工作器数据帧的引用。但不幸的是它没有发生..
欢迎任何答案..
提前致谢,..请:)..
最佳答案
This answer建议使用命名空间 share large objects between processes引用。
下面是一个应用程序示例,其中 4 个不同的进程可以从同一个 DataFrame 中读取数据。 (注意:您无法在交互式控制台上运行它 - 将其另存为 program.py
并运行它。)
import pandas as pd
from multiprocessing import Manager, Pool
def get_slice(namespace, column, rows):
'''Return the first `rows` rows from column `column in namespace.data'''
return namespace.data[column].head(rows)
if __name__ == '__main__':
# Create a namespace to place our DataFrame in it
manager = Manager()
namespace = manager.Namespace()
namespace.data = pd.DataFrame(pd.np.random.rand(1000, 10))
# Create 4 processes
pool = Pool(processes=2)
for column in namespace.data.columns:
# Each pool can access the same DataFrame object
result = pool.apply_async(get_slice, [namespace, column, 5])
print result._job, column, result.get().tolist()
虽然从 DataFrame 中读取数据完全没问题,但如果您想写回它,就会有点棘手。最好坚持使用不可变对象(immutable对象),除非您确实需要大型可写对象。
关于python - 如何在 python pandas 中使用数据框的引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29748481/
我是一名优秀的程序员,十分优秀!