Hướng dẫn read space delimited file python pandas - đọc tệp được phân cách bằng dấu cách python gấu trúc

Tôi cố gắng đọc tập tin vào gấu trúc. Tệp có các giá trị được phân tách bằng không gian, nhưng với số lượng không gian khác nhau tôi đã thử:

pd.read_csv('file.csv', delimiter=' ')

Nhưng nó không hoạt động

Hướng dẫn read space delimited file python pandas - đọc tệp được phân cách bằng dấu cách python gấu trúc

SMCI

30.6K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồng18 gold badges110 silver badges145 bronze badges

Hỏi ngày 28 tháng 10 năm 2013 lúc 10:14Oct 28, 2013 at 10:14

1

Thêm đối số

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
3, nó nhanh hơn regex.

Đã trả lời ngày 28 tháng 10 năm 2013 lúc 11:06Oct 28, 2013 at 11:06

HyryhyryHYRY

91.5K25 Huy hiệu vàng183 Huy hiệu bạc186 Huy hiệu đồng25 gold badges183 silver badges186 bronze badges

3

Bạn có thể sử dụng Regex làm dấu phân cách:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")

Đã trả lời ngày 28 tháng 10 năm 2013 lúc 10:16Oct 28, 2013 at 10:16

3

Nếu bạn không thể phân tích cú pháp văn bản để sử dụng câu trả lời được chấp nhận (ví dụ: nếu tệp văn bản của bạn chứa các hàng không đồng nhất) thì đáng để thử với thư viện CSV của Python - đây là một ví dụ sử dụng phương ngữ do người dùng xác định:

 import csv

 csv.register_dialect('skip_space', skipinitialspace=True)
 with open(my_file, 'r') as f:
      reader=csv.reader(f , delimiter=' ', dialect='skip_space')
      for item in reader:
          print(item)

Đã trả lời ngày 21 tháng 5 năm 2020 lúc 21:05May 21, 2020 at 21:05

PierzpierzPierz

5.90843 Huy hiệu bạc57 Huy hiệu đồng43 silver badges57 bronze badges

2

Dung dịch

Hãy xem xét tệp được phân phối không gian sau được gọi là

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
4:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
5

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
6

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
7

Để đọc tệp này bằng

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
8:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
5

 import csv

 csv.register_dialect('skip_space', skipinitialspace=True)
 with open(my_file, 'r') as f:
      reader=csv.reader(f , delimiter=' ', dialect='skip_space')
      for item in reader:
          print(item)
0

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
7

Xử lý các tệp bị dị tật với không gian biến

Hãy xem xét tệp được phân phối không gian sau được gọi là

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
4:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
5

 import csv

 csv.register_dialect('skip_space', skipinitialspace=True)
 with open(my_file, 'r') as f:
      reader=csv.reader(f , delimiter=' ', dialect='skip_space')
      for item in reader:
          print(item)
4

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
7

Để đọc tệp này bằng

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
8:

Xử lý các tệp bị dị tật với không gian biến

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
5

 import csv

 csv.register_dialect('skip_space', skipinitialspace=True)
 with open(my_file, 'r') as f:
      reader=csv.reader(f , delimiter=' ', dialect='skip_space')
      for item in reader:
          print(item)
8

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
7

Nếu

df = pd.read_csv('data', sep = r '\s{2,}')
0 trả về DataFrame với một cột, thì rõ ràng
df = pd.read_csv('data', sep = r '\s{2,}')
1 không sử dụng các tab làm dấu phân cách. Dữ liệu của bạn có thể chỉ đơn giản là có không gian làm dấu phân cách. Trong trường hợp đó bạn có thể thử

df = pd.read_csv('data', sep = r '\s{2,}')

trong đó sử dụng mẫu regex

df = pd.read_csv('data', sep = r '\s{2,}')
2 làm dấu phân cách. Regex này phù hợp với các ký tự khoảng trắng 2-hoặc nhiều hơn.

In[8]: df
Out[8]:
   SICcode Catcode Category SICname\
0 111 A1500 Wheat, corn, soybeans and cash grain Wheat
1 112 A1600 Other commodities(incl rice, peanuts) Rice
2 115 A1500 Wheat, corn, soybeans and cash grain Corn
3 116 A1500 Wheat, corn, soybeans and cash grain Soybeans
4 119 A1500 Wheat, corn, soybeans and cash grain Cash grains, NEC
5 131 A1100 Cotton Cotton
6 132 A1300 Tobacco & Tobacco products Tobacco

MultSIC
0 X
1 X
2 X
3 X
4 X
5 X
6 X

Tôi nghĩ rằng bạn có thể thử thêm

df = pd.read_csv('data', sep = r '\s{2,}')
3 vào
df = pd.read_csv('data', sep = r '\s{2,}')
4 nếu dữ liệu trong
df = pd.read_csv('data', sep = r '\s{2,}')
5 được phân tách bằng
df = pd.read_csv('data', sep = r '\s{2,}')
6.

import pandas as pd

df = pd.read_csv('test/a.csv', sep = "\t")
print df
SICcode Catcode Category SICname\
0 111 A1500 Wheat, corn, soybeans and cash grain Wheat
1 112 A1600 ther commodities(incl rice, peanuts) Rice
2 115 A1500 Wheat, corn, soybeans and cash grain Corn
3 116 A1500 Wheat, corn, soybeans and cash grain Soybeans
4 119 A1500 Wheat, corn, soybeans and cash grain Cash grains, NEC
5 131 A1100 Cotton Cotton
6 132 A1300 Tobacco & Tobacco products Tobacco

MultSIC
0 X
1 X
2 X
3 X
4 X
5 X
6 X


Gợi ý: 2

Chỉ định liệu khoảng trắng có hay không (ví dụ: '' hoặc '& nbsp; & nbsp; & nbsp;') sẽ được sử dụng làm sep. Tương đương với cài đặt sep = '\ s+'. Nếu tùy chọn này được đặt thành TRUE, không có gì được truyền cho tham số Delimiter., Nếu đúng và parse_dates được bật, gấu trúc sẽ cố gắng suy ra định dạng của các chuỗi DateTime trong các cột và nếu nó có thể được suy ra, hãy chuyển sang chuyển sang một phương pháp phân tích nhanh hơn để phân tích chúng. Trong một số trường hợp, điều này có thể tăng tốc độ phân tích cú pháp thêm 5-10 lần., Cho dù có bao gồm các giá trị NAN mặc định hay không khi phân tích dữ liệu. Tùy thuộc vào việc NA_Values ​​được truyền vào, hành vi như sau:, Các dòng có quá nhiều trường (ví dụ: dòng CSV có quá nhiều dấu phẩy) theo mặc định sẽ gây ra ngoại lệ và không có dữ liệu nào được trả về. Nếu sai, thì những dòng xấu của người Viking này sẽ bị loại khỏi khung dữ liệu được trả về.

>>> pd.read_csv('data.csv')


Gợi ý: 3

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, 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 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 file user.csv như sau, 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 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, ....)

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

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


Gợi ý: 4

Chúng tôi sẽ đọc trong tệp SN7577.TAB của chúng tôi. Mặc dù đây là tệp được phân định tab, chúng tôi vẫn sẽ sử dụng phương thức Pandas Read_CSV, nhưng chúng tôi sẽ nói rõ phương thức rằng dấu phân cách là ký tự tab chứ không phải là dấu phẩy mặc định. read_csv để đọc dữ liệu bảng vào Python, cho các ví dụ của chúng tôi trong tập này, chúng tôi sẽ sử dụng tệp sn7577.tab. Điều này có sẵn để tải xuống tại đây và mô tả của tệp có sẵn tại đây

df_SN7577 = pd.read_csv("SN7577.tab", sep = '\t')

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
0

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
1


Gợi ý: 5

Tôi cố gắng đọc tập tin vào gấu trúc. Tệp có các giá trị được phân tách bằng không gian, nhưng với số lượng không gian khác nhau tôi đã thử :, 6 ngày trước Pandas: Cách đọc tệp với các giá trị tách biệt không gian trong gấu trúc [Làm đẹp máy tính của bạn: https://www.hows.tech/p/ Được đề xuất.html] Pandas: Cách đọc f ..., 2 ngày trước đã chấp nhận câu trả lời. Dòng ban đầu của bạn: pd.read_csv (tên tệp, sep = '', header = none) đã chỉ định phân tách dưới dạng một không gian, bởi vì CSV của bạn có thể có khoảng trắng hoặc tab bạn có thể chuyển biểu thức thông thường đến thông số SEP như SO: PD .read_csv (filename, sep='\s+',header=None) , 1 week ago PYTHON : How to read file with space separated values ​​in pandas [ Gift : Animated Search Engine : https://bit.ly/AnimSearch ] PYTHON : Cách đọc tệp với ...

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
2


Làm thế nào để bạn đọc một tệp văn bản phân tách không gian trong Python?

Đọc không gian tệp văn bản phân tách thành danh sách trong câu trả lời mã Python..
với mở ('file1.txt', 'r+') như f:.
dòng = f.đọc().splitlines ().
print(lines).

Làm cách nào để đọc một tệp được phân định trong gấu trúc?

Chúng ta có thể đọc dữ liệu từ một tệp văn bản bằng read_table () trong gấu trúc.Hàm này đọc một tệp phân định chung đến một đối tượng DataFrame.Hàm này về cơ bản giống như hàm read_csv () nhưng với delimiter = '\ t', thay vì dấu phẩy theo mặc định.read_table() in pandas. This function reads a general delimited file to a DataFrame object. This function is essentially the same as the read_csv() function but with the delimiter = '\t', instead of a comma by default.

Làm cách nào để loại bỏ một khoảng trống trong gấu trúc?

Pandas cung cấp phương thức xác định trước pandas.series.str.strip () để loại bỏ khoảng trắng khỏi chuỗi.pandas. Series. str. strip()” to remove the whitespace from the string.

Phân phối trong gandas read_csv là gì?

read_csv (filepath_or_buffer, sep = ',', delimiter = none, header = 'infress', name = 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àomột khung dữ liệu và trả về điều đó.Nó sử dụng dấu phẩy (,) làm dấu phân cách mặc định hoặc dấu phân cách trong khi phân tích tệp.comma (,) as default delimiter or separator while parsing a file.