Hướng dẫn python read csv with different delimiter - python đọc csv với dấu phân cách khác nhau

Hướng dẫn python read csv with different delimiter - python đọc csv với dấu phân cách khác nhau

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 phân cách khác nhau với DataFrame.

Thư viện Python sườn Pandas cung cấp một chức năng để tải tệp CSV vào DataFrame, tức là.

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 tại đường dẫn đã cho, sau đó tải nội dung vào DataFrame và trả về điều đó. Nhưng chúng tôi cũng có thể chỉ định phân tách tùy chỉnh hoặc biểu thức thông thường được sử dụng làm dấu phân cách tùy chỉnh.

Để sử dụng pandas.read_csv () Nhập mô -đun pandas, tức là.

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 ‘user.csv‘ trong đó các cột được phân tách bằng chuỗi ‘__, như thế này. Nội dung của tệp user.csv như sau,users.csv‘ in which columns are separated by string ‘__’ like this.
Contents of file users.csv are as follows,

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 DataFrame bằng pandas.read_csv (), chúng ta phải chuyển các đối số SEP & Engine cho pandas.read_csv (), tức là.sep & engine arguments to pandas.read_csv() i.e.

# 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ì động cơ mặc định để phân tích cú pháp (động cơ c) sẽ được sử dụng để sử dụng ',' làm dấu phân cách. & NBSP; Nhận cảnh báo như thế này,sep argument will be used as separator or delimiter. If sep argument is not specified then default engine for parsing ( C Engine) will be used which uses ‘,’ as delimiter. So, while specifying the custom sep argument we must specify the engine argument as ‘python’, otherwise we will get warning like this,

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 động cơ = xông Python.engine=’python’.

Quảng cáo

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, rằng chúng ta có thể vượt qua 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 không gian trắng hoặc tab, tức là nội dung của tệp user_4.csv là,
Contents of file users_4.csv are,

Name   Age City
jack    34  Sydeny
Riti   31  Delhi

Bây giờ, để tải loại tệp này vào DataFrame với pandas.read_csv () Pass ‘\ s+, làm dấu phân cách. Ở đây \ S+ có nghĩa là bất kỳ một hoặc nhiều ký tự không gian trắng.‘\s+’ as separator. Here \s+ means any one or more white space character.

# Read a csv file to a dataframe with delimiter as space or tab
usersDf =  pd.read_csv('users_4.csv',  sep='\s+', engine='python')

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

Nội dung của DataFrame được trả về,

 *** Using pandas.read_csv() with space or tab as delimiters ***
Contents of Dataframe : 
   Name  Age    City
0  jack   34  Sydeny
1  Riti   31   Delhi

Sử dụng read_csv () với biểu thức thông thường cho các dấu phân cách

Giả sử chúng ta có một tệp trong đó nhiều trình phân cách char được sử dụng thay vì một tệp duy nhất. Giống,

Nội dung của tệp user_5.csv là,users_5.csv are,

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 DataFrame với read_csv () vượt qua một biểu thức chính quy, tức là '[:, | _]' trong đối số SEP. phân tách tức là

import pandas as pd
0

Đầ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ì động cơ mặc định để phân tích cú pháp (động cơ c) sẽ được sử dụng để sử dụng ',' làm dấu phân cách. & NBSP; Nhận cảnh báo như thế này,

import pandas as pd
2

Output:

Bạn có thể tránh cảnh báo này bằng cách chỉ định động cơ = xông Python.
 

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

Dưới đây là các bước bạn nên làm theo: Mở CSV của bạn bằng Trình chỉnh sửa văn bản.SKIP Một dòng ở trên cùng và thêm SEP =; Nếu dấu phân cách được sử dụng trong CSV là dấu chấm phẩy (;) hoặc sep =, nếu dấu phân cách là dấu phẩy (,). Lưu và mở lại tệp.Open your CSV using a text editor. Skip a line at the top, and add sep=; if the separator used in the CSV is a semicolon (;), or sep=, if the separator is a comma (,). Save, and re-open the file.

Làm cách nào để thay đổi phân định của tệp CSV trong 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 ví dụ nhắc nhở Anaconda. ....
Nhập Python Change_delimiter.py (thay đổi thay đổi_delimiter.py bằng tên của tệp python của bạn) sau đó nhấn enter ..

Làm cách nào để đọc tệp CSV bằng cách sử dụng Delimiter trong Python?

Đọc một tệp CSV bằng Python..
Sử dụng thư viện CSV.Nhập CSV với Open ("./ Bwq.csv", 'r') dưới dạng tệp: csvreader = csv.reader (tệp) cho hàng trong csvreader: in (hàng) ở đây chúng tôi đang nhập thư viện CSV để sử dụng.....
Sử dụng thư viện Pandas.Nhập gấu trúc dưới dạng dữ liệu PD = pd.Read_CSV ("BWQ.CSV") dữ liệu ..

Làm thế nào để nhiều người phân định hoạt động trong gấu trúc?

Làm thế nào để bạn chia tách theo dấu phân cách trong gấu trúc?Chia cột theo dấu phân cách thành nhiều cột Áp dụng chức năng Pandas Series str.Split () trên cột Địa chỉ của Google và chuyển dấu phân cách (dấu phẩy trong trường hợp này) mà bạn muốn phân chia cột.Ngoài ra, hãy đảm bảo vượt qua đúng với tham số mở rộng.Apply the pandas series str. split() function on the “Address” column and pass the delimiter (comma in this case) on which you want to split the column. Also, make sure to pass True to the expand parameter.