df = pd.DataFrame({‘a’: numpy.random.choice([‘l1’, ‘l2’], 1000000), ‘b’: numpy.random.choice([‘1’, ‘2’], 1000000)})
%timeit df['c'] = ((df.a == 'l1') == (df.b == '1')).astype(int)
10个循环,最佳3:每个循环178毫秒
@Viktor Kerkes:
%timeit df['c'] = (df.a.str[-1] == df.b).astype(int)
1个循环,最佳3:每个循环412毫秒
@ user1470788:
%timeit df['c'] = (((df['a'] == 'l1')&(df['b']=='1'))|((df['a'] == 'l2')&(df['b']=='2'))).astype(int)
1个循环,最佳3:每个循环363毫秒
@herrfz
%timeit df['c'] = (df.a.apply(lambda x: x[1:])==df.b).astype(int)
1个循环,最好为3:每个循环387毫秒