我正在处理一个文件,将其分割成多个数据帧,然后将它们放入池中。对于每个子数据帧,我需要创建一个以迭代索引作为文件后缀的输出文件,如下所示:
import numpy as np
df = pd.read_csv(input_file, encoding='utf8')
dfs = np.split(df, [chunk_size])
process_pool = Pool(multiprocessing.cpu_count())
process_pool.starmap(process_df, zip(dfs, repeat(data_file), repeat(data_path)))
def process_df(df, data_file, data_path):
...
output_file_name = data_path + modified_data_file + str(idx) + '.csv'
在上面的代码中,这里显示的"idx"是当不使用多处理:
for idx, df in dfs:
...
output_file_name = data_path + modified_data_file + str(idx) + '.csv'
在这种情况下,当使用多处理时,是否有一种方法可以访问每个文件的迭代索引?似乎文件/数据框架的迭代索引是不可见的。
您可以将zip改为:
zip(dfs, repeat(...), repeat(...), itertools.count())
你的process_df
现在有了第四个索引参数,你可以随意使用。
= = = = =
编辑。count()与counter()输入错误。