我定义以下函数来更新我的日期框
def func(idx,value):
if idx in df.index:
df.loc[idx] += value
else:
df.loc[idx] = value
然后,我使用joblib进行并行循环
Parallel(n_jobs=-1)(delayed(func)(idx, value) for idx, value in key(df2.name,df.score))
例如,我有两个数据帧:
name score
john 10
及
name score
john 10
chris 20
chris 10
然后,我希望我的函数将第一个数据帧更新为
name score
john 20
chris 30
然后,我得到一个错误,说赋值目的地是只读的。我认为这是因为我试图在并行计算时向数据帧添加新行
有什么办法可以四处走动吗?我也愿意接受除并行循环之外的任何其他建议,比如使用cudf的gpu计算(不确定循环的速度是否会加快)
您可以对dataframe进行分组并在组上迭代,将每个组传递给函数,并将函数的结果存储到一个列表中,您可以在最后连接该列表
这里我们有一些名字和年龄,我们将按年龄分组并传递一个并行函数,取平均值并将结果返回到一个列表中,该列表被连接为最终产品
输出
相关问题 更多 >
编程相关推荐