您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何基于pandas中其他列的值计算新列-python

如何基于pandas中其他列的值计算新列-python

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毫秒

python 2022/1/1 18:50:06 有365人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶