我有一个数据帧
c.head()
near_code code
321 FFZ1988 FFZ1988
322 FFZ1988 FFF1989
323 FFZ1988 FFG1989
324 FFZ1988 FFH1989
325 FFZ1988 FFJ1989
还有一个:
uni.iloc[:,0:7].head()
near_code 2 3 4 5
319 FFZ1988 FFF1989 FFG1989 FFH1989 FFJ1989
0 FFF1989 FFG1989 FFH1989 FFJ1989 FFK1989
29 FFG1989 FFH1989 FFJ1989 FFK1989 FFM1989
58 FFH1989 FFJ1989 FFK1989 FFM1989 FFN1989
87 FFJ1989 FFK1989 FFM1989 FFN1989 FFQ1989
现在对于'c'中的每个near\代码,我需要找到uni中对应代码的列号。e、 g.对于c的第一行,答案是'code',即首先在uni列'near\u code'中找到'near\u code'=FFZ1988,然后找出对应的'code'(=FFZ1988)所在的列。第二排的答案是“2”,第三排的答案是“3”,以此类推
我写了下面的代码来实现这一点,但是它运行得非常慢
def find_relative_col(nearest_code,current_code,uni):
#this function needs to be applied to every row of c to find what is the relative position of code vs near_code
rel_row = uni[uni.near_code==nearest_code]
t= rel_row.T
t.columns =['code']
t = t.reset_index()
ans = t[t.code == current_code]['index']
return ans
ans = c.apply(lambda x: find_relative_col(*x, uni), axis=1)
有没有更快的方法
目前没有回答
相关问题 更多 >
编程相关推荐