python - 如何通过 pandas.factorize 识别多条件?
问题描述
我读到这篇文章是关于 pd.factorize 来识别和创建用户识别的唯一值。
但是,就我而言,我想应用多重条件,即OR
识别用户的条件,并且条件具有重要性排序。
例如:df:
cond_1(email) cond_2(phone) cond_3(other)
abc@yahoo.com 12345678 qwe
asd@yahoo.com 789456123 rty
abc@yahoo.com 905132312 zxc
dsds@yahoo.com 789456123 po
abc@yahoo.com 789456123 special
预期:
cond_1(email) cond_2(phone) cond_3(other) unique_id
abc@yahoo.com 12345678 qwe 1
asd@yahoo.com 789456123 rty 2
abc@yahoo.com 905132312 zxc 1
dsds@yahoo.com 789456123 po 2
abc@yahoo.com 789456123 special 1
解决方案
IIUC,你可以这样做:
df['unique_id']=df.apply(lambda x: pd.factorize(x)[0]+1).min(axis=1)
print(df)
cond_1(email) cond_2(phone) cond_3(other) unique_id
0 abc@yahoo.com 12345678 qwe 1
1 asd@yahoo.com 789456123 rty 2
2 abc@yahoo.com 905132312 zxc 1
3 dsds@yahoo.com 789456123 po 2
4 abc@yahoo.com 789456123 special 1
推荐阅读
- java - 为文件大小添加小数位
- docker - docker 上的 Jenkins 不会在 8080 端口上运行
- matlab - 将矩阵提升到幂的尺寸不正确
- python - 基于列 Python Pandas 创建行
- r - 有条件地选择列表中对象的元素位置并返回带有对象元素位置的新列表
- ruby-on-rails - 如何在rails api上重置密码?[不使用设计]
- highcharts - 高亮图表中的突出显示区域
- sql - 将重复列设为 NULL
- visual-studio-code - 如何使用 API 在 vscode 市场中发布 vscode 插件?
- r - R:我如何多次使用带有矩阵的滞后命令?