因此,我试图在excel文件中向下钻取一列数据,然后将其作为熊猫导入到Python中,以便管理更多项目。
如您所见,说淋巴瘤的方法很多。我正在尝试将这些项目降低到基本情况,因此对于任何类型的淋巴瘤,仅是淋巴瘤。对于癌症,仅癌症,依此类推。
你们有什么建议吗?
答案 0 :(得分:0)
最简单的方法是用关键字替换整个字符串:
df['Conditions'].str.replace('.*(Lymphoma|Cancer).*', '\\1', case=False)
但是这种解决方案相当不精确。如果某些类型的淋巴瘤实际上应被视为癌症,或者不包含关键字“淋巴瘤”的淋巴瘤病症,则无效。
一种更精确的方法是明确列出所有被认为是淋巴瘤和癌症的疾病,并相应地予以替代:
replacements = {
'Lymphoma': ['Lymphoma', 'Follicular Lymphoma', 'Lymphoma, B-Cell', 'B-Cell Lymphoma', 'XYZ'],
'Cancer': ['Cancer A', 'Cancer B']
}
# explode requires pandas 0.25 or later
s = pd.Series(replacements).explode()
m = pd.Series(s.index, index=s.str.upper()).to_dict()
df['Conditions'].str.upper().map(m)
有upper
个调用可以处理字符大小写。