我想在df1的每一行的2列中查找值,在另一个df2中查找匹配项,并将其粘贴到同一行的df1的新列中并继续
alp=list("ABCDEFGHIJKLMNOPQRTSUVQXYZ")
df1['NewCol'] = (np.random.choice(alp)) #create new col and input random values
for i in range(len(df1['code1'])):
a = df1['code2'].iloc[i].upper()
b = df1['code1'].str[-3:].iloc[i]
df1['NewCol'].iloc[i] = df2.loc[b,a]
df1['code3'] = df1[['code3','NewCol']].max(axis=1)
df1 =df1.drop('NewCol',axis=1)
我的意见如下: df1型:
code1 code2 code3
0 XXXHYG a 12
1 XXXTBG a 23
2 XXXECT b 34
3 XXXKOL b 45
4 XXXBTW c 56
df2型:
A B C D E
HYG 33 38 40 41 30
TBG 20 46 41 43 45
ECT 53 42 39 34 45
KOL 45 51 54 47 30
BTW 37 36 49 48 58
所需输出:
code1 code2 code3
0 XXXHYG a 33
1 XXXTBG a 23
2 XXXECT b 42
3 XXXKOL b 51
4 XXXBTW c 56
当我在df1中仅对4200行执行此操作时,仅循环就需要222秒。。一定有办法利用熊猫的力量更快地做到这一点?你知道吗
非常感谢您的时间!你知道吗
如果使用cda3(^}}可以更快地创建一个新的数据帧。他说
输出
相关问题 更多 >
编程相关推荐