Python 如何在使用多处理模块时保留对数据帧的更改?

Python 如何在使用多处理模块时保留对数据帧的更改?,python,pandas,multiprocessing,copy,Python,Pandas,Multiprocessing,Copy,我有一个熊猫数据框,我需要根据我从许多文件中读取的一些其他数据来修改它。为了加快速度,我尝试使用内置的多处理模块并行执行此操作 我有一个修改数据帧的函数。当手动调用时,这可以正常工作,并且数据帧更改将被保留。并行调用时,不会保留更改 我知道这与CopyWarning的设置有关,但我不知道如何解决这个问题 使用多处理模块时如何保留更改? 我已经创建了一个MWE来说明我遇到的问题 导入多处理 作为pd进口熊猫 类别数据: 定义初始化(自): self.data=pd.DataFrame( { “ZA

我有一个熊猫数据框,我需要根据我从许多文件中读取的一些其他数据来修改它。为了加快速度,我尝试使用内置的
多处理
模块并行执行此操作

我有一个修改数据帧的函数。当手动调用时,这可以正常工作,并且数据帧更改将被保留。并行调用时,不会保留更改

我知道这与CopyWarning的
设置有关,但我不知道如何解决这个问题

使用多处理模块时如何保留更改?

我已经创建了一个MWE来说明我遇到的问题

导入多处理
作为pd进口熊猫
类别数据:
定义初始化(自):
self.data=pd.DataFrame(
{
“ZAID”:[“1001.00c”,“92235.00nc”],
“ZA”:[100192235],
“T(K)”:[293.6293.6]
}
)
#这是我在创建DataFrame时不知道的数据
#稍后将使用addData填充内容
列={“NE”:int,“length”:int}
对于名称,在columns.items()中键入数据:
self.data[name]=pd.Series(dtype=dtype)
def ADDDDATA(自身,索引):
"""
将数据添加到数据框的索引中
"""
#读取文件并提取数据
NE=1200
长度=1234
self.data.loc[索引,“NE”]=NE
self.data.loc[索引,“长度”]=长度
如果名称=“\uuuuu main\uuuuuuuu”:
打印(“学习熊猫”)
dd=数据()
dd.addData(0)#此调用*不*保存添加内容
使用多处理。池(2)作为池:
#此呼叫*不*保存添加内容
pool.map(dd.addData,dd.data.index)

dd.data.index
?看起来您不是在添加数据,而是在修改数据,因为您的
dd.data.index
只有一个(现有)值。是的,但我正在将空值修改为某个实际值。如果有更好的方法,请告诉我。你试过使用队列吗?@EmersonPedroso我不太清楚你的意思。你能详细解释一下吗?我从这家伙那里得到的我也有同样的问题