【发布时间】:2021-02-28 19:47:32
【问题描述】:
示例数据框:
df = pd.DataFrame({'column_1':['a','a','a','a','a','a','b','b','b','b','b','b','b','b','b','c','c','d','d']
,'column_2':[1,1,1,2,2,2,1,1,1,2,2,2,3,3,3,1,2,2,3]
})
我想按条件计算每对列,编号从 1 到 N。 我想,我必须使用apply函数,但不知道如何写它的实现。
使用 .loc 循环非常慢(过滤原因)
for column_1 in df.column_1.unique():
for column_2 in df.column_2.unique():
condition = (df.column_1 == column_1)&(df.column_2 == column_2)
max_range = sum(condition)
df.loc[condition, 'result'] = range(1, max_range + 1)
df.result = df.result.astype(int)
结果:
【问题讨论】: