Hướng dẫn read csv file with pipe delimiter in python pandas - đọc tệp csv với dấu phân cách ống dẫn trong pandas python

Tôi có các giá trị phân tách bằng ống như thế này:

https|clients4.google.com|application/octet-stream|2296|
https|clients4.google.com|text/html; charset=utf-8|0|
....
....
https|clients4.google.com|application/octet-stream|2291|

Tôi phải tạo một gấu trúc

>>> import pandas as pd

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291
6 trong số dữ liệu này, với mỗi cột được đặt một tên.

Asclepius

52.9K16 Huy hiệu vàng154 Huy hiệu bạc137 Huy hiệu đồng16 gold badges154 silver badges137 bronze badges

Đã hỏi ngày 6 tháng 1 năm 2014 lúc 12:23Jan 6, 2014 at 12:23

Bạn đi đây:

>>> import pandas as pd

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291

Đã trả lời ngày 6 tháng 1 năm 2014 lúc 12:31Jan 6, 2014 at 12:31

Elyaseelyaseelyase

38.1k11 Huy hiệu vàng106 Huy hiệu bạc117 Huy hiệu đồng11 gold badges106 silver badges117 bronze badges

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ề,

>>> import pandas as pd

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291
0

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,

>>> import pandas as pd

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291
1

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

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291
2

Đầ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

>>> pd.read_csv['data.csv', sep='|', index_col=False, 
                 names=['protocol', 'server', 'type', 'value']]
Out[7]:
     protocol server                 type                        value
0    https    clients4.google.com    application/octet-stream    2296
1    https    clients4.google.com    text/html; charset=utf-8    0
2    https    clients4.google.com    application/octet-stream    2291
4

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 gấu trúc với dấu phân cách?

Đọc các tệp CSV bằng gấu trúc.Để đọc các tệp CSV này, chúng tôi sử dụng chức năng của thư viện gấu trúc có tên là read_csv [].....
Phân tách thanh dọc.Do đó, một tệp được phân định thanh dọc có thể được đọc bởi: df = pd.read_csv ["c: \ users \ rahul \ desktop \ example.csv", sep = '|'].
Dấu cách phân tách đại tràng.....
Phân tách tab.....
Conclusion..

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

Thêm "sep =;"hoặc "sep =", đến tệp CSV khi bạn có CSV được phân tách bằng dấu chấm phẩy [;] và mặc định hệ thống/excel của bạntập tin.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. When you have a CSV that is separated by semicolons [;] and your system/Excel default is commas [,], you can add a single line to tell Excel what delimiter to use when opening the file. Here are the steps you should follow: Open your CSV using a text editor.

Việc sử dụng PIPE [] trong Python Pandas là gì?

Phương thức PIPE [] cho phép bạn áp dụng một hoặc nhiều chức năng cho đối tượng DataFrame.allows you to apply one or more functions to the DataFrame object.

Bài Viết Liên Quan

Chủ Đề