我有兩個資料框df1,df2. 它們都具有相同的列,但是只有當資料幀行相等時,我才想提取并放入df2所謂的列。iddf1['id_frame']
ind = merged.columns.get_loc('id_frame')
tmp = pd.DataFrame()
for i_row in range(len(df1)):
for j_row in range(len(df2)):
if df1[['material', 'type', 'size', 'height', 'size_in', 'size_cm', 'weight', 'dims']].iloc[i_row]\
.equals(df2[['material', 'type', 'size', 'height', 'size_in', 'size_cm', 'weight', 'dims']].iloc[j_row]):
df2.iloc[j_row, ind] = df1['id'].iloc[i_row]
tmp = pd.concat([tmp, df2[df2['id'].notna()]])
df2 = df2[df2['id'].isna()]
df2= tmp
上面的代碼作業正常,但根本沒有效率。你會如何改進它?
df2洗掉了很多重復項可以解決問題,但是我需要保留索引以分配給特定物件,因此我不確定如何使用這種方法進行操作。
uj5u.com熱心網友回復:
嘗試pd.merge使用 all['material', 'type', 'size', 'height', 'size_in', 'size_cm', 'weight', 'dims']作為合并鍵。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/439410.html
