python - Pandas 替换具有多种变体的列中的字符串值

标签 python pandas dataframe numpy data-cleaning

我正在处理这个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/

相关文章:

python Pandas : How to combine or merge two difrent size dataframes based on dates

python - 无法在 Python 3.x 中安装 paho-mqtt

python - 有人可以向我解释一下下面代码中的命令 [0][1][2] 以及它们是如何工作的

python - 对数据进行排序并应用 groupby 后查找最大时间增量

python - pandas:绘制 DataFrame 时未显示 MultiIndex

python - 从大型语料库创建 DTM

python - 我抓取了标题、价格、链接和信息表,我将其命名为planet_data,当我写入csv文件时,我得到了重复的planet_data

python - Pandas 数据框与系列的列乘法(索引不匹配)

r - 如何删除带有特殊字符的行?

python - 在 Python 中的 Pandas.DataFrame.transform 中传递多个 lambda 函数