Xóa các ký tự đặc biệt trong khung dữ liệu Python

Mục tiêu là thay thế ký tự gạch dưới (“_”) bằng dấu gạch ngang (“. ”) dưới cột ‘first_set‘

Để đạt được mục tiêu này, bạn cần thêm cú pháp sau vào mã

df['first_set'] = df['first_set'].str.replace('_','|')

Vì vậy, mã Python hoàn chỉnh để thực hiện thay thế như sau

import pandas as pd

colors = {'first_set':  ['aa_bb','cc_dd','ee_ff','gg_hh'],
          'second_set': ['ii_jj','kk_ll','mm_nn','oo_pp']
         }

df = pd.DataFrame(colors, columns= ['first_set','second_set'])

df['first_set'] = df['first_set'].str.replace('_','|')

print (df)

Như bạn có thể thấy, ký tự gạch dưới đã được thay thế bằng ký tự ống trong cột 'first_set'

  first_set   second_set
0     aa|bb        ii_jj
1     cc|dd        kk_ll
2     ee|ff        mm_nn
3     gg|hh        oo_pp

Thay thế một ký tự cụ thể trong Toàn bộ khung dữ liệu

Nếu bạn muốn thay thế một ký tự cụ thể trong toàn bộ DataFrame thì sao?

Ví dụ: hãy thay thế ký tự gạch dưới bằng ký tự ống trong toàn bộ DataFrame

Trong trường hợp đó, bạn sẽ cần áp dụng cú pháp sau

import pandas as pd

colors = {'first_set':  ['aa_bb','cc_dd','ee_ff','gg_hh'],
          'second_set': ['ii_jj','kk_ll','mm_nn','oo_pp']
         }

df = pd.DataFrame(colors, columns= ['first_set','second_set'])

df = df.replace('_','|', regex=True)

print (df)

Bây giờ, bạn sẽ thấy rằng ký tự gạch dưới đã được thay thế bằng ký tự ống trong toàn bộ Khung dữ liệu (trong cả cột 'first_set' và 'second_set')

  first_set   second_set
0     aa|bb        ii|jj
1     cc|dd        kk|ll
2     ee|ff        mm|nn
3     gg|hh        oo|pp

Thay thế một dãy ký tự

Giả sử bạn muốn thay thế một chuỗi ký tự trong Pandas DataFrame

Chẳng hạn, giả sử bạn đã tạo một DataFrame mới nơi bạn muốn thay thế chuỗi “_xyz_” bằng hai đường ống “. ”

Đây là cú pháp để tạo DataFrame mới

import pandas as pd

colors = {'first_set':  ['aa_xyz_bb','cc_xyz_dd','ee_xyz_ff','gg_xyz_hh'],
          'second_set': ['ii_xyz_jj','kk_xyz_ll','mm_xyz_nn','oo_xyz_pp']
         }

df = pd.DataFrame(colors, columns= ['first_set','second_set'])

print (df)

Và đây là cách DataFrame mới trông như thế nào

df = df.replace('old character','new character', regex=True)
0

Sau đó, bạn có thể sử dụng đoạn mã sau để thay thế chuỗi “_xyz_” bằng “. ” dưới cột ‘first_set’

Có thể sử dụng hàm Spark SQL regex_replace để xóa các ký tự đặc biệt khỏi cột chuỗi trong Spark DataFrame. Phụ thuộc vào định nghĩa của các ký tự đặc biệt, các biểu thức chính quy có thể khác nhau. Ví dụ: có thể sử dụng [^0-9a-zA-Z_\-]+ để khớp các ký tự không phải là chữ và số hoặc không phải là dấu gạch nối (-) hoặc dấu gạch dưới (_);

Đoạn mã này thay thế các ký tự đặc biệt bằng chuỗi rỗng

from pyspark.sql import SparkSession
from pyspark.sql.functions import regexp_replace

app_name = "PySpark regex_replace Example"
master = "local"

spark = SparkSession.builder \
    .appName(app_name) \
    .master(master) \
    .getOrCreate()

spark.sparkContext.setLogLevel("WARN")

data = [[1, 'ABCDEDF!@#$%%^123456qwerty'],
        [2, 'ABCDE!!!']
        ]

df = spark.createDataFrame(data, ['id', 'str'])

df.show(truncate=False)

df = df.select("id", regexp_replace("str", "[^0-9a-zA-Z_\-]+", ""
                                    ).alias('replaced_str'))

df.show()

content_copySao chép mã fork_right Ngã ba

Hãy để chúng tôi xem cách xóa các ký tự đặc biệt như #, @, &, v.v. từ tên cột trong khung dữ liệu pandas. Ở đây chúng tôi sẽ sử dụng chức năng thay thế để loại bỏ ký tự đặc biệt

ví dụ 1. xóa một ký tự đặc biệt khỏi tên cột

con trăn




# import pandas

import pandas as pd

 

# create data frame

Data= ________18____19_______: [import0_______12_______1import2import1import4import1

import6_______12_______7import1import9pandas as pd0

pandas as pd1

pandas as pd2_______13_______3: [___pandas as pd5import1pandas as pd7import1pandas as pd9_______12_______1

 1pandas as pd5import1pandas as pd7pandas as pd0

pandas as pd1

pandas as pd2_______14_______8: [15_______0import1# create data frame2import1# create data frame4import1# create data frame6import1# create data frame8# create data frame9

 

Data1______17_______ Data3

 

Data5

Data6Data7

 

Data9

=0_______17_______ =2=3=4=5=6

 

=8

Data6{0{1{2

đầu ra

Ở đây, chúng tôi đã xóa thành công một ký tự đặc biệt khỏi tên cột. Bây giờ chúng tôi sẽ sử dụng một danh sách có chức năng thay thế để xóa nhiều ký tự đặc biệt khỏi tên cột của chúng tôi

ví dụ 2. xóa nhiều ký tự đặc biệt khỏi khung dữ liệu gấu trúc

con trăn




# import pandas

import pandas as pd

 

# create data frame

Data= ________18____19_______: [import0_______12_______1import2import1import4'Name#'8

'Name#'9import7import1import9: [3

pandas as pd1

pandas as pd2_______20_______6 : [pandas as pd5import1pandas as pd7import1pandas as pd9'Name#'8

import04pandas as pd5import1pandas as pd7pandas as pd0

pandas as pd1

pandas as pd2_______12_______11 : [15_______0import1# create data frame2import1# create data frame4import1# create data frame6import1# create data frame8import22

Làm cách nào để xóa tất cả các ký tự đặc biệt khỏi chuỗi trong Python?

Hai trong số những cách phổ biến nhất để xóa ký tự khỏi chuỗi trong Python là. .
sử dụng phương thức chuỗi thay thế ()
sử dụng phương thức chuỗi translate()

Làm cách nào để xóa số và ký tự đặc biệt khỏi chuỗi trong Python?

Sử dụng 're. .
“[^A-Za-z0–9]”. Điều này sẽ khớp với tất cả các ký tự ngoại trừ bảng chữ cái và số. .
Tất cả các ký tự phù hợp sẽ được thay thế bằng một chuỗi trống
Tất cả các ký tự ngoại trừ bảng chữ cái và số đều bị xóa