我正在尝试并行化DataFrameGroupBy的应用程序操作,所以我编写了如下代码
keys, grps = [], []
for k, g in tqdm(df.groupby(['col1', 'col2'])):
keys.append(k)
grps.append(g)
然后 GRP 将被发送到multiprocessing.Pool
.我观察到的是,循环停止了大约 71% 并中断。
71%|███████▏ | 185000/260000 [00:25<00:10, 7353.74it/s]
col1
是一列字符串,而col2
是浮点数64。我认为不知何故是 col2 导致了问题,因为df.groupby(['col1']
会遍历所有 260k 组,但我不知道为什么以及如何。
使用的熊猫版本:0.23.3
我认为数据帧列包含 NaN(缺失(值。利用fillna((函数用一些默认数据填充缺失值。
for column in df:
df[column]=df[column].fillna(0)
在 GroupBy 语句之前使用上面的代码。