用另一个值替换熊猫数据框列中的几个值

新手上路,请多包涵

我有一个熊猫数据 df 如下图所示:

 BrandName Specialty
A          H
B          I
ABC        J
D          K
AB         L

我想替换 'ABC''AB'BrandName'A' 有人可以帮忙吗?

原文由 Pulkit Jha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 230
2 个回答

最简单的方法是在列上使用 replace 方法。参数是您要替换的内容的列表(此处为 ['ABC', 'AB'] )以及您要将其替换为的内容(在本例中为字符串 'A' ):

 >>> df['BrandName'].replace(['ABC', 'AB'], 'A')
0    A
1    B
2    A
3    D
4    A

这将创建一个新的系列值,因此您需要将此新列分配给正确的列名:

 df['BrandName'] = df['BrandName'].replace(['ABC', 'AB'], 'A')

原文由 Alex Riley 发布,翻译遵循 CC BY-SA 3.0 许可协议

代替

DataFrame 对象具有强大而灵活的 replace 方法:

 DataFrame.replace(
        to_replace=None,
        value=None,
        inplace=False,
        limit=None,
        regex=False,
        method='pad',
        axis=None)

请注意,如果您需要就地进行更改,请使用 inplace 布尔参数 replace 方法:

到位

inplace :布尔值,默认 False 如果 True ,就位。注意:这将修改此对象上的任何其他视图(例如,一个列形成一个 DataFrame)。如果这是 True 则返回调用者。

片段

df['BrandName'].replace(
    to_replace=['ABC', 'AB'],
    value='A',
    inplace=True
)

原文由 I159 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题