Dấu phân cách trong Python csv

Trong bài viết này, chúng tôi sẽ thảo luận về cách đọc tệp CSV với các loại dấu phân cách khác nhau đối với Khung dữ liệu

Thư viện Pandas của Python cung cấp chức năng tải tệp csv vào Dataframe i. e

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, ....)

Nó đọc nội dung của tệp csv theo đường dẫn nhất định, sau đó tải nội dung vào Dataframe và trả về nội dung đó. Nó sử dụng dấu phẩy (,) làm dấu phân cách hoặc dấu phân cách mặc định khi phân tích cú pháp một tệp. Nhưng chúng ta cũng có thể chỉ định dấu tách tùy chỉnh hoặc cụm từ thông dụng sẽ được sử dụng làm dấu tách tùy chỉnh

Để sử dụng gấu trúc. read_csv() nhập mô-đun pandas i. e

quảng cáo

import pandas as pd

Sử dụng read_csv() với dấu phân cách tùy chỉnh

Giả sử chúng ta có một tệp 'người dùng. csv' trong đó các cột được phân tách bằng chuỗi '__' như thế này
Nội dung của người dùng tập tin. csv như sau,

Name__Age__City
jack__34__Sydeny
Riti__31__Delhi
Aadi__16__New York
Suse__32__Lucknow
Mark__33__Las vegas
Suri__35__Patna

Bây giờ để tải loại tệp này vào đối tượng khung dữ liệu bằng gấu trúc. read_csv() chúng ta phải chuyển các đối số sep & engine cho pandas. read_csv() tôi. e

Đọc thêm

  • Viết Pandas DataFrame vào tệp CSV
  • Cách truy cập cột thứ i của Mảng NumPy 2D trong Python
  • gấu trúc. Tìm các hàng trùng lặp trong Dataframe dựa trên tất cả hoặc…
  • Làm cách nào để đọc tệp CSV lớn bằng gấu trúc?

# Read a csv file to a dataframe with custom delimiter
usersDf =  pd.read_csv('users.csv', sep='__'  , engine='python')

print('Contents of Dataframe : ')
print(usersDf)

đầu ra

Contents of Dataframe : 
   Name  Age       City
0  jack   34     Sydeny
1  Riti   31      Delhi
2  Aadi   16   New York
3  Suse   32    Lucknow
4  Mark   33  Las vegas
5  Suri   35      Patna

Ở đây, đối số sep sẽ được sử dụng làm dấu phân cách hoặc dấu phân cách. Nếu đối số sep không được chỉ định thì công cụ mặc định để phân tích cú pháp ( C Engine) sẽ được sử dụng sử dụng ',' làm dấu phân cách. Vì vậy, trong khi chỉ định đối số sep tùy chỉnh, chúng ta phải chỉ định đối số động cơ là 'python', nếu không chúng ta sẽ nhận được cảnh báo như thế này,

ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex);

Bạn có thể tránh cảnh báo này bằng cách chỉ định engine=’python’

Sử dụng read_csv() với khoảng trắng hoặc tab làm dấu phân cách

Như chúng ta đã thấy trong ví dụ trên, chúng ta có thể chuyển các dấu phân cách tùy chỉnh. Bây giờ, giả sử chúng ta có một tệp trong đó các cột được phân tách bằng khoảng trắng hoặc tab i. e
Nội dung của tập tin users_4. csv là,

Name   Age City
jack    34  Sydeny
Riti   31  Delhi

Bây giờ, để tải loại tệp này vào khung dữ liệu bằng read_csv(), hãy chuyển một biểu thức chính quy i. e. ‘[. ,. _]’ trong lập luận sep. Biểu thức chính quy này có nghĩa là sử dụng bất kỳ ký tự nào trong số này ( ,. . ) asa dấu phân cách hoặc dấu phân cách i. e

Lần đầu tiên tôi bắt đầu làm việc với các tệp CSV khi học phần phụ trợ trong chương trình đào tạo bootcamp kỹ thuật phần mềm của mình. Mãi cho đến khi tôi bắt đầu đi sâu hơn vào phần khoa học dữ liệu trong quá trình học liên tục của mình, tôi mới bắt đầu sử dụng chúng một cách thường xuyên

CSV là viết tắt của các giá trị được phân tách bằng dấu phẩy và các tệp chứa phần mở rộng .csv chứa một tập hợp các giá trị được phân tách bằng dấu phẩy được sử dụng để lưu trữ dữ liệu

Trong hướng dẫn này, chúng tôi sẽ sử dụng bộ dữ liệu Beach Water Quality công khai được lưu trữ trong tệp bwq.csv. Bạn có thể lấy tệp bằng cách tải xuống từ Kaggle, tuy nhiên, bạn sẽ có thể đọc bất kỳ tệp csv nào theo hướng dẫn bên dưới

Đọc tệp CSV bằng Python

Có hai cách phổ biến để đọc tệp .csv khi sử dụng Python. Cách thứ nhất bằng cách sử dụng thư viện csv và cách thứ hai bằng cách sử dụng thư viện pandas

1. Sử dụng Thư viện CSV

import csv

with open("./bwq.csv", 'r') as file:
  csvreader = csv.reader(file)
  for row in csvreader:
    print(row)

Ở đây chúng tôi đang nhập thư viện csv để sử dụng phương pháp

import pandas as pd
data = pd.read_csv("bwq.csv")
data
1 mà nó chứa để giúp chúng tôi đọc tệp csv

Từ khóa

import pandas as pd
data = pd.read_csv("bwq.csv")
data
3 cho phép chúng tôi mở và đóng tệp mà không cần phải đóng tệp một cách rõ ràng

Phương thức

import pandas as pd
data = pd.read_csv("bwq.csv")
data
4 nhận hai đối số kiểu
import pandas as pd
data = pd.read_csv("bwq.csv")
data
5. Đầu tiên là tên tệp và thứ hai là đối số chế độ. Chúng tôi đang sử dụng
import pandas as pd
data = pd.read_csv("bwq.csv")
data
6 để đọc, tuy nhiên điều này có thể được bỏ qua vì
import pandas as pd
data = pd.read_csv("bwq.csv")
data
6 được giả định theo mặc định

Sau đó chúng tôi lặp lại trên tất cả các hàng

Bạn sẽ mong đợi một đầu ra trong thiết bị đầu cuối trông giống như thế này

Dấu phân cách trong Python csv
Đầu ra thiết bị đầu cuối Python

2. Sử dụng thư viện Pandas

________số 8_______

Ở đây chúng tôi đang nhập Pandas, một thư viện Python được sử dụng để tiến hành thao tác và phân tích dữ liệu. Nó chứa phương pháp

import pandas as pd
data = pd.read_csv("bwq.csv")
data
8 mà chúng tôi cần để đọc tệp csv của chúng tôi

Bạn nên mong đợi đầu ra trông giống như thế này

Dấu phân cách trong Python csv

Các vấn đề về dấu phân cách có thể xảy ra

Phần lớn các tệp csv được phân tách bằng dấu phẩy, tuy nhiên, có một số tệp được phân tách bằng các ký tự khác, chẳng hạn như dấu hai chấm, có thể tạo ra kết quả lạ trong Python

Giải pháp cho dấu phân cách bằng thư viện CSV

Để thay đổi dấu phân cách bằng thư viện csv, chỉ cần chuyển đối số

import csv

with open("./fileWithColonDelimeter.csv", 'r') as file:
  csvreader = csv.reader(file, delimiter=':')
  for row in csvreader:
    print(row)
2 trong phương thức
import csv

with open("./fileWithColonDelimeter.csv", 'r') as file:
  csvreader = csv.reader(file, delimiter=':')
  for row in csvreader:
    print(row)
3 như vậy

import csv

with open("./fileWithColonDelimeter.csv", 'r') as file:
  csvreader = csv.reader(file, delimiter=':')
  for row in csvreader:
    print(row)

Đối với các trường hợp cạnh khác khi đọc các tệp csv bằng thư viện csv, hãy xem trang này trong tài liệu Python

Giải pháp cho dấu phân cách bằng thư viện Pandas

Để thay đổi dấu phân cách bằng thư viện pandas, chỉ cần chuyển đối số

import csv

with open("./fileWithColonDelimeter.csv", 'r') as file:
  csvreader = csv.reader(file, delimiter=':')
  for row in csvreader:
    print(row)
2 trong phương thức
import csv

with open("./fileWithColonDelimeter.csv", 'r') as file:
  csvreader = csv.reader(file, delimiter=':')
  for row in csvreader:
    print(row)
8 như vậy

import pandas as pd
data = pd.read_csv("fileWithColonDelimeter.csv", delimiter= ':')
data

Đối với các trường hợp cạnh khác khi đọc tệp csv bằng thư viện Pandas, hãy xem trang này tài liệu Pandas

Tiếp theo

Để có hướng dẫn chi tiết hơn về những gì bạn có thể làm sau khi đọc tệp csv, hãy xem Lập biểu đồ lượng mưa bằng Python, Pandas và Matplotlib của Alex Couture-Beil

Làm cách nào để đặt dấu phân cách trong CSV Python?

Cách thay đổi dấu phân cách trong tệp CSV .
Tạo một tệp Python mới ở vị trí lưu tệp CSV của bạn. .
Mở một phiên bản Dấu nhắc Anaconda. .
Nhập python change_delimiter. py (thay thế change_delimiter. py bằng tên tệp Python của bạn) rồi nhấn Enter

Dấu phân cách trong CSV là gì?

Do đó, tệp CSV đại diện cho một bảng dữ liệu (có hàng và cột). Dấu phân cách mặc định cho tệp CSV là dấu phẩy, nhưng bất kỳ ký hiệu nào cũng có thể được sử dụng làm dấu phân cách CSV , chẳng hạn như tab ngang.

Làm cách nào để đọc tệp CSV có dấu phân cách trong Python?

Đọc tệp CSV bằng Pandas. Để đọc các tệp CSV hoặc dấu phân cách read_csv này, chúng tôi sử dụng một chức năng của thư viện Pandas có tên là read_csv(). .
Thanh phân cách dọc. Do đó, tệp được phân cách bằng thanh dọc có thể được đọc bởi. df = pd. read_csv("C. \Users\Rahul\Desktop\Ví dụ. csv", tháng chín = '. ')
Máy tách đại tràng. .
Dấu tách tab. .
Phần kết luận

Dấu phân cách Pandas cho CSV là gì?

Pandas DataFrame to_csv() Cú pháp . dấu phân cách cho dữ liệu CSV. sep: the delimiter for the CSV data. Nó phải là một chuỗi có độ dài 1, mặc định là dấu phẩy. na_rep. chuỗi đại diện cho các giá trị rỗng hoặc bị thiếu, mặc định là chuỗi rỗng. cột. một trình tự để chỉ định các cột sẽ bao gồm trong đầu ra CSV.