def merge_file(result_dict):
if not isinstance(result_dict,dict):
raise ValueError('input parameter must dict!')
if len(result_dict) <= 1:
raise ValueError('{} can not be None and at least 2 dataframe!'.format(result_dict))
if not all('account_id' in result_dict.get(file).columns for file in result_dict.keys()):
raise ValueError("info for {} ,['account_id'] must be as a column of all files .".format(result_dict))
df = []
for k in result_dict:
tmp = result_dict.get(k).set_index('account_id')
df.append(tmp)
import functools
df_merge = functools.reduce(lambda left,right:
pd.merge(left,right,right_index=True,left_index=True,how='left'),df
)
df_merge.reset_index(inplace=True)
print(df_merge.info())
return df_merge