我是python中的多处理新手,想知道我是否可以为我的数据分析做这件事。
file1=open('./R.csv','r').readlines()
file2=open('./N.csv','r').readlines()
Dict1={}
Dict2={}
for k1 in range(0,len(file1)):
d1=file2[k1].split(',')[0]
Dict1[k1]=d1
#print(Dict1[1])
for k2 in range(0,len(file2)):
d2=file2[k2].split(',')[0]
Dict2[k2]=d2
#print(new_Dict[0])
for i in range(0,len(file1)):
for j in range(0,len(file2)):
if Dict1[i] in Dict2[j]:
print(Dict1[i]+","+file1[i].split(',')[1].strip()+","+file2[j].split(',')[1].strip())
此代码有效,但由于两个文件都是一个庞大的数据集,因此完成工作需要花费大量时间。我想在服务器的工作站使用所有64个CPU集群。但不知道怎么样......
我试过按照下面这些链接,但不知何故卡住了。
https://stackoverflow.com/questions/914821/producer-consumer-problem-with-python-multiprocessing
https://www.youtube.com/watch?v=sp7EhjLkFY4
https://www.youtube.com/watch?v=aysceqdGFw8
任何帮助都非常感谢。
非常感谢。干杯。
我首先使用熊猫测试:
import pandas as pd
df_r = pd.read_table('./R.csv', header=None) # check if standard delimiter ',' works...
df_n = pd.read_table('./N.csv', header=None) # ... otherwise add e.g. sep='\s+,\s+'
print(df_r[df_r[0].isin(df_n[1])])
也许这是一种已经适合您的方法。