我以下面的df為例
| 產品代碼 | 產品類別 | 價格 |
|---|---|---|
| 01478 | ELC | 119.00 英鎊 |
| 01479 | GRN | 159.00 英鎊 |
| 01514 | 壓水堆 | 100.00 英鎊 |
| 01617 | ELC | 119.00 英鎊 |
| 01819 | ELC - GRN - 壓水堆 | 300.00 英鎊 |
| 01819 | ELC - GRN - 壓水堆 | 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 更改為 Electric,將 GRN 更改為 Green,但不會將 ELC - GRN - PWR 更改為 Electric - Green - Power Supply。
我能問一下為什么會發生這種情況以及解決方案是什么嗎?
我在堆疊中查看了許多不同的方法,但似乎沒有任何方法有效。
謝謝你 :)
uj5u.com熱心網友回復:
您可以regex在內部使用df.Series.replace(不帶str):
df['Product Type'] = df['Product Type'].replace(dict, regex=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526491.html
上一篇:根據子字串獲取資料框單元格值
下一篇:根據其他列中的模式創建新列
