When pass two dataframe obj into the func.It goes right. While using partial, it says:
TypeError: fall() got multiple values for argument 'dfn'
Here is the test code? Any one knows why?
from functools import partial
from multiprocessing import Pool
import pandas as pd
def fall(dfn,x):
return dfn,x
if __name__ == "__main__":
df=pd.DataFrame([['a'],['b']])
dfxn=pd.DataFrame([['c'],['d']])
print(fall(dfxn,df))
f=partial(fall,dfn=dfxn)
print(f(df))
In addtion, It goes right when
f=partial(fall,x=dfxn)
print(f(df))
from functools import partial from multiprocessing import Pool import pandas as pd def fall(dfn,x): return dfn,x if __name__ == "__main__": df=pd.DataFrame([['a'],['b']]) dfxn=pd.DataFrame([['c'],['d']]) pool=Pool(2) f=partial(fall,dfn=dfxn) pool.map(f,[df,df]) #how to put df into f(x)? it can only send df to first argument to dfn? pool.close() pool.join()
– WilsonF Dec 29 '18 at 08:10