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
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+"]
5pd.read_csv["whitespace.csv", header=None, delimiter=r"\s+"]
6pd.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]
0pd.read_csv["whitespace.csv", header=None, delimiter=r"\s+"]
7Xử 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]
4pd.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]
8pd.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+"]
0pd.read_csv["whitespace.csv", header=None, delimiter=r"\s+"]
1Gợ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: //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 : //bit.ly/AnimSearch ] PYTHON : Cách đọc tệp với ...
pd.read_csv["whitespace.csv", header=None, delimiter=r"\s+"]
2