假设我有以下数据框:
例如,在“42及以上”列中的值显示仅第3个用户具有等于或大于42的值,并且它有两个值。
我可以使用以下代码逐个执行此操作:
user_id | a1 | a2 | a3 | a4 | a5 | ... | a100
1 | 12 | 30 | 0 | 12 | 1 | ... | 21
2 | 2 | 13 | 18 | 13 | 13 | ... | 3
3 | 42 | 31 | 5 | 14 | 26 | ... | 41
4 | 1 | 9 | 10 | 15 | 20 | ... | 23
根据这个数据框,我想为a1-a100列中的任何唯一值生成附加列。最好用一个例子来解释这一点。基于上面的数据框,我将添加以下列到原始数据框中:
1AndAbove | 2AndAbove | ... | 42AndAbove
5 | 4 | ... | 0
6 | 6 | ... | 0
6 | 6 | ... | 2
6 | 5 | ... | 0
例如,在“42及以上”列中的值显示仅第3个用户具有等于或大于42的值,并且它有两个值。
我可以使用以下代码逐个执行此操作:
df['1AndAbove'] = (df > 1).astype(int).sum(axis=1)
然而,如果我需要生成100列,这将非常繁琐。我想知道是否有更通用和优雅的方法来完成这个任务?