需要一个帮助。
我正在尝试连接两个数据帧。第一个具有58k行,其他具有100行。要以这样的方式进行连接:58k行中的每个行都有来自其他df的100行。因此,总共580万行。 性能是非常可怜的,需要1个小时做10 pct。有什么改进建议吗? 这是代码段。
def myfunc(vendors3,cust_loc):
cust_loc_vend = pd.DataFrame()
cust_loc_vend.empty
for i,row in cust_loc.iterrows():
clear_output(wait=True)
a= row.to_frame().T
df= pd.concat([vendors3, a],axis=1, ignore_index=False)
#cust_loc_vend = pd.concat([cust_loc_vend, df],axis=1, ignore_index=False)
cust_loc_vend= cust_loc_vend.append(df)
print('Current progress:',np.round(i/len(cust_loc)*100,2),'%')
return cust_loc_vend
例如如果第一个DF有5行,第二个DF有100行
答案 0 :(得分:1)
您所希望的只是一个联接。但是由于没有列列,您可以做的是创建一个在两个数据帧中都相似的列,然后最终将其删除。
df['common'] = 1
df1['common'] = 1
df2 = pd.merge(df, df1, on=['common'],how='outer')
df = df.drop('tmp', axis=1)
其中df和df1是数据帧。