python-3.x - 替换熊猫数据框列中重复的值
问题描述
假设我有下表列出了一个单位的制造商。
import pandas as pd
df = pd.DataFrame({'Maker': ['Company1ID', 'SusanID', 'CeramiCorpID', 'PeterID', 'SaraID', 'CeramiCorpID', 'Company1ID']})
print(df)
现在考虑我有一个更大的表,其中包含多个人员和公司 ID,我想将它们重新分类为两类,人员和公司已在预期列中显示。ID 比显示的要复杂得多(例如:f00568ab456b)并且对于每个人或公司都是唯一的,但只有公司出现在不同的行中。
| Maker | Expected |
|--------------|----------|
| Company1ID | Corp |
| SusanID | Person |
| CeramiCorpID | Corp |
| PeterID | Person |
| SaraID | Person |
| CeramiCorpID | Corp |
| Company1ID | Corp |
我基本上被困在试图了解我是否需要在.duplicated(keep=False)上使用某种条件时使用.apply(lamba x)或.replace。我不确定如何去做。
帮助表示赞赏!
解决方案
我不确定这是您想要的,但您可以像这样创建“预期”列:
df['Expected'] = ['Corp' if 'Corp' in maker else 'Person' for maker in df['Maker']]
编辑:如果您希望它们按出现次数分类:
df['Expected'] = ['Corp' if len(df[df['Maker'] == maker]) > 1 else 'Person' for maker in df['Maker']]
这将假设没有只出现一次的 Corp。但如果是这样的话,那么我怎么知道它是一个人还是一个公司?
推荐阅读
- html - I have an image that leads to an external link, but after I move the image down, the link can't be clicked anymore
- reactjs - 如何从 React 组件中删除属性?
- python - 全局变量在函数外不起作用
- java - 在 chrome selenium 中为备用配置文件设置下载目录
- unity3d - 用于夹点检测和全息远程处理的 MRTK 2.4
- python - Keras Tuner - 调整多个相同的参数
- python - Python NewRelic 指标未显示
- domain-driven-design - DDD实体关系建模
- variables - Ansible 变量字典键未替换
- curl - 使用 cURL 在 Google Apps 脚本函数中添加数组作为参数