我正在处理这个csv file.这是一个小型笔记本电脑信息数据集。
laptops = pd.read_csv('laptops.csv',encoding="Latin-1")
laptops["Operating System"].value_counts()
Windows 1125
No OS 66
Linux 62
Chrome OS 27
macOS 13
Mac OS 8
Android 2
Name: Operating System, dtype: int64
我想将 macOS 和 Mac OS 的变体合并到单个值“macOS”下。
这个我试过了,有效。
mapping_dict = {
'Android': 'Android',
'Chrome OS': 'Chrome OS',
'Linux': 'Linux',
'Mac OS': 'macOS',
'No OS': 'No OS',
'Windows': 'Windows',
'macOS': 'macOS'
}
laptops["Operating System"] = laptops["Operating System"].map(mapping_dict)
laptops["Operating System"].value_counts()
Windows 1125
No OS 66
Linux 62
Chrome OS 27
macOS 21
Android 2
Name: Operating System, dtype: int64
这是唯一的方法还是最好的方法?假设多个值(而不仅仅是 macOS)可能会出现这样的要求。
最佳答案
laptops['Operating System'] = laptops['Operating System'].str.replace(r'(?i)(mac|mc).*os', 'macOS', regex=True)
关于python - Pandas 替换具有多种变体的列中的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72479794/