Python Pandas如何根据Title列的值修改对应行的Gender列内容
Pandas实现方案
首先构造示例DataFrame:
import pandas as pd # 构造示例数据 data = { "Contact": [1,2,3,4,5,6,7], "Gender": ["M", "F", "Female", "F.", "M", "M", "M."], "Title": ["", "Dear Ms", "Dear Ms", "Dear Ms", "", "", "Dear Mr"] } df = pd.DataFrame(data)
核心处理逻辑:
# 匹配Title含Ms的行,Gender统一设为F df.loc[df["Title"].str.contains("Ms", na=False), "Gender"] = "F" # 匹配Title含Mr的行,Gender统一设为M df.loc[df["Title"].str.contains("Mr", na=False), "Gender"] = "M"
处理后输出结果验证:
print(df)
输出结果:
| Contact | Gender | Title |
|---|---|---|
| 1 | M | |
| 2 | F | Dear Ms |
| 3 | F | Dear Ms |
| 4 | F | Dear Ms |
| 5 | M | |
| 6 | M | |
| 7 | M | Dear Mr |
逻辑说明
str.contains("Ms", na=False)用于判断每行Title是否包含指定字符串,na=False避免空值/NaN值引发报错,空Title会自动返回False,不会进入匹配逻辑,原有Gender值会完整保留- 用
loc选中匹配行直接修改Gender列值,不会影响其他行数据
内容的提问来源于stack exchange,提问作者Monkey D
相关产品推荐
相关产品推荐

