Hướng dẫn str replace multiple values python pandas - str thay thế nhiều giá trị bằng pandas python

16

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

All,

Để thay thế một chuỗi trong một cột cụ thể, tôi đã thực hiện điều này và nó hoạt động tốt:

dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")

Bây giờ tôi muốn thay thế nhiều chuỗi bằng một chuỗi nói thay thế

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
2 bằng
dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
3

Làm thế nào có thể làm cho nó hoạt động? Mã dưới đây không hoạt động

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")

Hướng dẫn str replace multiple values python pandas - str thay thế nhiều giá trị bằng pandas python

Ah bon

8.4598 Huy hiệu vàng 50 Huy hiệu bạc110 Huy hiệu Đồng8 gold badges50 silver badges110 bronze badges

Đã hỏi ngày 21 tháng 3 năm 2018 lúc 17:30Mar 21, 2018 at 17:30

Bạn có thể thực hiện nhiệm vụ này bằng cách hình thành chuỗi | phát biểu. Điều này hoạt động vì

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
4 chấp nhận Regex:

Thay thế các lần xuất hiện của mẫu/regex trong sê -ri/chỉ mục bằng một số chuỗi khác. Tương đương với str.replace () hoặc re.sub ().

Điều này tránh sự cần thiết phải tạo ra một từ điển.

import pandas as pd

df = pd.DataFrame({'A': ['LOCAL TEST', 'TEST FOREIGN', 'ANOTHER HELLO', 'NOTHING']})

pattern = '|'.join(['LOCAL', 'FOREIGN', 'HELLO'])

df['A'] = df['A'].str.replace(pattern, 'CORP')

#               A
# 0     CORP TEST
# 1     TEST CORP
# 2  ANOTHER CORP
# 3       NOTHING

Đã trả lời ngày 21 tháng 3 năm 2018 lúc 17:38Mar 21, 2018 at 17:38

Hướng dẫn str replace multiple values python pandas - str thay thế nhiều giá trị bằng pandas python

JPPJPPjpp

152K32 Huy hiệu vàng257 Huy hiệu bạc319 Huy hiệu đồng32 gold badges257 silver badges319 bronze badges

6

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
5 có thể chấp nhận
dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
6, hệ điều hành Chúng tôi chỉ tạo ra một quyền cho các giá trị đó cần được thay thế

dataUS['sec_type'].str.strip().replace(dict(zip(["LOCAL", "FOREIGN", "HELLO"], ["CORP"]*3)),regex=True)

Thông tin về Dict

dict(zip(["LOCAL", "FOREIGN", "HELLO"], ["CORP"]*3))
Out[585]: {'FOREIGN': 'CORP', 'HELLO': 'CORP', 'LOCAL': 'CORP'}

Lý do tại sao bạn nhận được lỗi,

str.replace khác với thay thế

Đã trả lời ngày 21 tháng 3 năm 2018 lúc 17:32Mar 21, 2018 at 17:32

Hướng dẫn str replace multiple values python pandas - str thay thế nhiều giá trị bằng pandas python

BenybenyBENY

308K19 Huy hiệu vàng153 Huy hiệu bạc214 Huy hiệu đồng19 gold badges153 silver badges214 bronze badges

4

Câu trả lời của @Rakesh rất gọn gàng nhưng không cho phép phụ. Tuy nhiên, với một thay đổi nhỏ, nó có.

  1. Sử dụng từ điển thay thế vì nó làm cho nó trở nên chung chung hơn nhiều
  2. Thêm đối số từ khóa
    dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
    
    7 vào
    dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
    
    8 (không phải
    dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
    
    9) Điều này thực sự thực hiện hai điều: nó thay đổi thay thế của bạn sang thay thế Regex, mạnh hơn nhiều nhưng bạn sẽ phải thoát khỏi các ký tự đặc biệt. Hãy coi chừng điều đó. Thứ hai, nó sẽ làm cho việc thay thế hoạt động trên các chuỗi con thay vì toàn bộ chuỗi. Mà thực sự tuyệt vời!
replacement = {
    "LOCAL": "CORP",
    "FOREIGN": "CORP",
    "HELLO": "CORP"
}

dataUS['sec_type'].replace(replacement, regex=True)

Ví dụ đầy đủ mã

dataUS = pd.DataFrame({'sec_type': ['LOCAL', 'Sample text LOCAL', 'Sample text LOCAL sample FOREIGN']})

replacement = {
    "LOCAL": "CORP",
    "FOREIGN": "CORP",
    "HELLO": "CORP"
}

dataUS['sec_type'].replace(replacement, regex=True)

Đầu ra

0                            CORP
1                            CORP
2                Sample text CORP
3    Sample text CORP sample CORP
Name: sec_type, dtype: object

Đã trả lời ngày 23 tháng 7 năm 2019 lúc 9:24Jul 23, 2019 at 9:24

Laurens Koppenollaurens KoppenolLaurens Koppenol

2.7662 Huy hiệu vàng19 Huy hiệu bạc32 Huy hiệu Đồng2 gold badges19 silver badges32 bronze badges

1

Chức năng thay thế nhiều giá trị trong loạt gấu trúc:

def replace_values(series, to_replace, value):
    for i in to_replace:
        series = series.str.replace(i, value)
    return series

Hy vọng điều này sẽ giúp ai đó

Đã trả lời ngày 14 tháng 5 năm 2019 lúc 13:18May 14, 2019 at 13:18

Anthony Ranthony rAnthony R

2.4991 Huy hiệu vàng11 Huy hiệu bạc10 Huy hiệu đồng1 gold badge11 silver badges10 bronze badges

@JJP Trả lời là một câu trả lời tốt nếu bạn có một danh sách dài. Nhưng nếu bạn chỉ có hai hoặc ba thì bạn chỉ cần sử dụng '|' trong mô hình. Đảm bảo thêm tham số

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
7.

Rõ ràng

import pandas as pd

df = pd.DataFrame({'A': ['LOCAL TEST', 'TEST FOREIGN', 'ANOTHER HELLO', 'NOTHING']})

pattern = '|'.join(['LOCAL', 'FOREIGN', 'HELLO'])

df['A'] = df['A'].str.replace(pattern, 'CORP')

#               A
# 0     CORP TEST
# 1     TEST CORP
# 2  ANOTHER CORP
# 3       NOTHING
1 không phải là một yêu cầu nhưng là thực hành tốt.

import pandas as pd

df = pd.DataFrame({'A': ['LOCAL TEST', 'TEST FOREIGN', 'ANOTHER HELLO', 'NOTHING']})

df['A'] = df['A'].str.strip().str.replace("LOCAL|FOREIGN|HELLO", "CORP", regex=True)

đầu ra

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
0

Đã trả lời ngày 26 tháng 9 năm 2021 lúc 11:46Sep 26, 2021 at 11:46

CamcamCam

1.07310 Huy hiệu bạc16 Huy hiệu đồng10 silver badges16 bronze badges

Try:

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
1

Đã trả lời ngày 21 tháng 3 năm 2018 lúc 17:37Mar 21, 2018 at 17:37

Hướng dẫn str replace multiple values python pandas - str thay thế nhiều giá trị bằng pandas python

RakeshrakeshRakesh

79,6K17 Huy hiệu vàng71 Huy hiệu bạc109 Huy hiệu đồng17 gold badges71 silver badges109 bronze badges

4

Làm thế nào thay thế nhiều giá trị trong gấu trúc?

Bước 1 - Nhập thư viện.Nhập GANDAS dưới dạng nhập khẩu PD Numpy như NP.....
Bước 2 - Thiết lập dữ liệu.Hãy để chúng tôi tạo một bộ dữ liệu đơn giản và chuyển đổi nó thành DataFrame.....
Bước 3 - Thay thế các giá trị và in tập dữ liệu.....
Bước 5 - Quan sát các thay đổi trong bộ dữ liệu ..

Làm thế nào để bạn thay thế nhiều mục trong một chuỗi trong Python?

Chúng ta có thể thay thế nhiều ký tự trong một chuỗi bằng cách sử dụng thay thế (), regex.sub (), dịch () hoặc cho vòng lặp trong python ...
Nhân vật 's' với 'x' ..
Nhân vật 'a' với 'y' ..
Nhân vật 'tôi' với 'z' ..

Chúng ta có thể thay thế nhiều giá trị trong Python không?

Python cung cấp phương thức thay thế () để xử lý các ký tự thay thế (đơn hoặc nhiều) trong một chuỗi.Phương thức thay thế trả về một đối tượng mới (chuỗi) thay thế các trường (ký tự) được chỉ định bằng các giá trị mới.. The replace method returns a new object (string) replacing specified fields (characters) with new values.