我有下面的df作为例子
| 产品型号|产品类型|标价|
| - -|- -|- -|
| 小行星01478|电子线路控制|119.00英镑|
| 小行星01479|绿色|159.00英镑|
| 小行星01514|电源|100英镑|
| 小行星01617|电子线路控制|119.00英镑|
| 小行星01819|电子照明-绿色-电源|300.00英镑|
| 小行星01819|电子照明-绿色-电源|300.00英镑|
我正在尝试使用字典更改“产品类型”列中的多个值
这是我的代码:
df['Product Type'] = df['Product Type'].str.replace('ELC', 'Electric')
df['Product Type'] = df['Product Type'].str.replace('GRN', 'Green')
df['Product Type'] = df['Product Type'].str.replace('PWR', 'Power Supply')
当我使用这个它改变值和工程,甚至为ELC - GRN - PWR
然而,当我尝试使用dict方法只是为了提高代码的可读性,使它更简单,而不是加载str.replace行。
dict = {
'ELC' : 'Electric',
'GRN' : 'Green',
'PWR': 'Power Supply',
'-' : ' '}
它仅将单个ELC更改为电动,将GRN更改为绿色,但不会将ELC - GRN - PWR更改为电动-绿色-电源。
我能问一下为什么会发生这种情况吗?解决办法是什么?
我看过许多不同的方法在堆栈,但似乎没有有效的工作。
感谢您发送编修。
1条答案
按热度按时间8ulbf1ek1#
您可以在
df.Series.replace
内部使用regex
(不使用str
):