Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?

Mặc dù tất cả các mã Python mà bạn đã thấy cho đến nay, rất có thể bạn đã bỏ lỡ phần "để làm gì khác" sau đây mà tôi cũng đã thấy lần đầu tiên cách đây vài tuần

Đây là một phương pháp lặp qua danh sách "for-else", trong đó mặc dù có một lần lặp qua danh sách, bạn cũng có một điều kiện "khác", điều này khá bất thường

Đây không phải là điều mà tôi từng thấy ở các ngôn ngữ lập trình khác như Java, Ruby hay JavaScript

Hãy xem một ví dụ về giao diện của nó trong thực tế

Giả sử rằng chúng ta đang cố kiểm tra xem không có số lẻ nào trong danh sách hay không

Hãy lặp lại nó

numbers = [2, 4, 6, 8, 1]

for number in numbers:
    if number % 2 == 1:
        print(number)
        break
else:
    print("No odd numbers")

Trường hợp tìm được số lẻ thì số đó sẽ được in ra do ngắt sẽ được thực hiện và nhánh khác sẽ bị bỏ qua

Trong bài viết này, chúng ta sẽ xem cách trích xuất dấu câu được sử dụng trong cột được chỉ định của Dataframe bằng Regex

Đầu tiên, chúng tôi đang tạo biểu thức chính quy chứa tất cả dấu chấm câu. [. ”\$%&\'()*+,\-. \/. ;=#@?\[\\\]^_`{. }~]* Sau đó, chúng tôi sẽ chuyển từng hàng của cột cụ thể sang lại. hàm findall() để trích xuất dấu chấm câu và sau đó gán dấu chấm câu đã trích xuất đó cho một cột mới trong Khung dữ liệu

lại. Hàm findall() được sử dụng để trích xuất tất cả các kết quả trùng khớp không chồng chéo của mẫu trong chuỗi, dưới dạng danh sách các chuỗi. Chuỗi được quét từ trái sang phải và kết quả khớp được trả về theo thứ tự tìm thấy

Để được giải thích về vấn đề bạn gặp phải, hãy xem tại đây. http. //gấu trúc. pydata. org/pandas-docs/ổn định/user_guide/lập chỉ mục. html#returning-a-view-so-a-copy

Về cơ bản, texttweet['text'] là một "lát cắt" của khung dữ liệu và bạn đang lấy lát cắt đó và cố gắng gán thứ gì đó cho nó ở vị trí i

Để tránh lỗi, bạn có thể sử dụng texttweet. loc[i,'văn bản'] =. Điều này khác vì nó đang được áp dụng trực tiếp vào khung dữ liệu gốc, không phải một phần của nó

Trong hướng dẫn Pandas ngắn này, bạn sẽ tìm hiểu cách xóa dấu chấm câu khỏi khung dữ liệu Pandas trong Python. Lưu ý, trong bài đăng trước bạn đã học cách xóa dấu chấm câu khỏi chuỗi Python và bài đăng này sử dụng một mehtod tương tự và tôi đề cập đến bài đăng đó nếu bạn cần biết “dấu chấm câu” là gì

Dữ liệu mẫu

Trong ví dụ Pandas DataFrame bên dưới, bạn có thể cho rằng dữ liệu đã được lấy từ một trang web và sau đó được thêm vào từ điển Python

import pandas as pd

data = {'ID#':[i for i in range(1,11)],
        'Gender.1':['F', 'M']*5,
       'State':['AL.', 'AK.', 'AS.', 'AS.', 'CA.', 
        'CO.', 'DC.', 'FL.', 'ID.', 'CA.'],
       'Words':['Hey,', 'Stop', 'Seaborn,', 'Pandas', 'DataFrame]',
        'Good#', 'DataScience,', 'Python', 'Tutorials$', 'AI..']}

df = pd.DataFrame(data)

Bây giờ, bạn có thể thấy rằng bạn sử dụng pd. Phương pháp DataFrame để tạo Pandas DataFrame từ từ điển. Sau đó, nếu bạn sử dụng df.head(), bạn sẽ nhận được đầu ra sau

Trong hình trên, bạn sẽ thấy rằng có dấu chấm câu trong cả tên cột và các ô của Khung dữ liệu Pandas. Trong các phần sau, bạn sẽ học cách xóa dữ liệu khỏi dấu câu. Trước tiên, bạn sẽ học cách xóa dấu câu khỏi các cột trong khung dữ liệu. Thứ hai, bạn sẽ học cách xóa dấu câu khỏi tên cột của cùng một khung dữ liệu

Xóa dấu chấm câu khỏi một cột trong Pandas Dataframe

Trong phần này, bạn sẽ tìm hiểu cách loại bỏ Dấu câu trong một cột trong khung dữ liệu Pandas. Bây giờ, ở đây bạn sẽ sử dụng str. phương thức thay thế để loại bỏ dấu câu khỏi một cột Pandas duy nhất

df["StateNoPunctuation"] = df['review'].str.replace('[^\w\s]','')
df.head()

Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?
Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?

Trong ví dụ trên, bạn đã tạo một cột mới với các giá trị không có dấu chấm câu. Tuy nhiên, nếu bạn chỉ muốn xóa nó khỏi cột, bạn có thể thay đổi mã như sau

df["StateNoPunctuation"] = df['review'].str.replace('[^\w\s]','')
df.head()

Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?
Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?

Xóa dấu chấm câu khỏi nhiều Cột trong Pandas DataFrame

Trong phần này, bạn sẽ tìm hiểu cách xóa dấu chấm câu khỏi nhiều cột trong Pandas Dataframe. Để làm như vậy, bạn có thể viết chức năng của riêng mình và sau đó sử dụng phương thức áp dụng

def remove_punctuation(x):
    try:
        x = x.str.replace('[^\w\s]','')
    except:
        pass
    return x

df.apply(remove_punctuation)

Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?
Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?

Bây giờ, bạn đã xóa dấu chấm câu khỏi khung dữ liệu Pandas của mình, bạn có thể muốn bắt đầu xóa dữ liệu. Nếu bạn cần biết cách thay đổi kiểu dữ liệu của cột Pandas, tôi tham khảo bài đăng đó

Cách xóa tên cột khỏi dấu câu trong Pandas DataFrame

Trong ví dụ cuối cùng này, bạn sẽ học cách xóa các tên cột. Như bạn có thể nhận thấy, cũng có dấu chấm câu trong tên cột trong DataFrame. Ở đây, một lần nữa, bạn sẽ sử dụng str. phương thức thay thế để xóa dấu chấm câu nhưng khỏi tên cột

df.columns = df.columns.str.strip().str.replace('[^\w\s]', '')
df

Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?
Làm cách nào để xóa dấu chấm câu khỏi cột khung dữ liệu trong python?

Như bạn có thể thấy, ở đây bạn đã sử dụng phương thức cột để lấy tên cột và loại bỏ dấu chấm câu. Bây giờ, nếu bạn cũng cần thay đổi hoàn toàn tên cột, hãy đảm bảo rằng bạn đã kiểm tra bài đăng đó. Cuối cùng, nếu bạn cần thêm một cột vào Khung dữ liệu Pandas, tôi cũng đã trình bày điều đó trong một bài đăng. Nói một cách tổng quát hơn, những gì bạn đã làm ở đây là thao tác dữ liệu trong Python

Tóm lược

Trong hướng dẫn Python Pandas ngắn này, bạn đã học cách xóa dấu chấm câu khỏi Pandas DataFrames. Trên thực tế, bạn đã học cả cách sử dụng str. phương thức thay thế để thực hiện việc này trên một cột và tất cả các cột trong DataFrame. Cuối cùng, bạn đã học cách xóa tên cột chứa dấu câu. Lưu ý, có một gói Python thực sự thú vị mà bạn có thể sử dụng để xóa dữ liệu. Nó được gọi là Pyjanitor. Kiểm tra nó ra