Đã hỏi 4 năm, 7 tháng trước 4 years, 7 months ago
Đã xem 4k lần 4k times
Tôi có một tệp CSV chứa 60.000 mục. Tôi đọc chúng và lưu trữ trong một danh sách lồng nhau như thế này:
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv:
entries.append[row]
Thay vì đọc tất cả 60.000 làm thế nào tôi chỉ đọc hàng ngàn mục đầu tiên?
Tôi đã thử điều này mà không thành công:
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
Đã hỏi ngày 26 tháng 3 năm 2018 lúc 18:26Mar 26, 2018 at 18:26
Như bạn đã phát hiện ra
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
3 không hỗ trợ cắt. Bạn có thể sử dụng itertools.islice [] để thực hiện điều này với các đối tượng có thể hiểu được. Ví dụ.,import itertools
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in itertools.islice[mycsv, 1000]:
entries.append[row]
Đã trả lời ngày 26 tháng 3 năm 2018 lúc 18:28Mar 26, 2018 at 18:28
Bạn có thể sử dụng thư viện gấu trúc-
import pandas as pd
data = pd.read_csv['path/to/your/file.csv',nrows=1000]
data_list = data.values.tolist[] #creates a list of the first 1000 rows [excludes header]
Đã trả lời ngày 26 tháng 3 năm 2018 lúc 18:33Mar 26, 2018 at 18:33
DannymoshedannymosheDannyMoshe
5.4583 Huy hiệu vàng27 Huy hiệu bạc49 Huy hiệu đồng3 gold badges27 silver badges49 bronze badges
Khi làm việc với các bộ dữ liệu lớn, nó có thể ăn rất nhiều bộ nhớ để đọc toàn bộ bộ dữ liệu trong gấu trúc. Tuy nhiên, bạn có thể chỉ đọc một vài hàng từ DataFrame nếu bạn muốn xem dữ liệu hoặc thực hiện một số phân tích đơn giản. Trong hướng dẫn này, chúng tôi sẽ xem xét cách chỉ đọc n hàng đầu tiên của tệp CSV sang một bản dữ liệu gấu trúc.
Bạn có thể sử dụng chức năng Pandas read_csv [] để đọc tệp CSV. Để chỉ đọc một vài hàng đầu tiên, hãy chuyển số lượng hàng bạn muốn đọc cho tham số NROWS. Lưu ý rằng, theo mặc định, hàm read_csv [] đọc toàn bộ tệp CSV dưới dạng dataFrame. Sau đây là cú pháp:
df_firstn = pd.read_csv[FILE_PATH, nrows=n]
Ở đây, File_Path là đường dẫn đến tệp CSV bạn muốn tải và n là số lượng hàng bạn muốn đọc từ đầu tệp.
Ví dụ
Chúng ta hãy xem xét một số ví dụ về việc đọc chỉ các hàng trên cùng của tệp CSV trong gấu trúc. Đối với hướng dẫn này, chúng tôi sẽ sử dụng bộ dữ liệu IMDB Reviews mà bạn có thể & NBSP; tải xuống tại đây. Bộ dữ liệu chứa 50 nghìn đánh giá từ IMDB được gắn thẻ tích cực và tiêu cực.
Ở đây, một ảnh chụp nhanh về cách dữ liệu trông như thế nào:
Chỉ tải các hàng trên cùng
Hãy nói rằng bạn chỉ muốn đọc 100 hàng đầu tiên của bộ dữ liệu thay vì đọc toàn bộ bộ dữ liệu. Để chỉ đọc 100 hàng đầu tiên, hãy chuyển 100 cho tham số
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
4.import pandas as pd # read the top n rows of csv file as a dataframe reviews_df = pd.read_csv["IMDB Dataset.csv", nrows=100] # print the shape of the dataframe print["Dataframe shape:", reviews_df.shape]
Output:
Dataframe shape: [100, 2]
Bạn có thể thấy rằng chỉ có 100 hàng đầu tiên của tệp CSV được đọc và tải vào DataFrame. Hãy để in ra năm hàng đầu tiên của DataFrame.
print[reviews_df.head[]]
Output:
review sentiment 0 One of the other reviewers has mentioned that ... positive 1 A wonderful little production.
The... positive 2 I thought this was a wonderful way to spend ti... positive 3 Basically there's a family where a little boy ... negative 4 Petter Mattei's "Love in the Time of Money" is... positive
2. Tải n hàng từ giữa
Bạn cũng có thể bỏ qua các hàng từ bộ dữ liệu bạn đang đọc. Ví dụ: để bỏ qua ba đánh giá đầu tiên và sau đó đọc 100 hàng từ bộ dữ liệu trên:
# read n rows of csv file after skipping rows as a dataframe reviews_df = pd.read_csv["IMDB Dataset.csv", skiprows=range[1,4], nrows=100] # print the shape of the dataframe print["Dataframe shape:", reviews_df.shape]
Output:
Dataframe shape: [100, 2]
Lưu ý rằng, chúng tôi đã chuyển một phạm vi cho tham số
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
5. Điều này là do hàng đầu tiên của bộ dữ liệu của chúng tôi là tiêu đề và chúng tôi không muốn bỏ qua nó. Bạn cũng có thể chuyển một số nguyên cho tham số entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
5 sẽ bỏ qua các hàng từ đầu. Hãy để in ra năm hàng đầu tiên của DataFrame.print[reviews_df.head[]]
Output:
entries = []
with open['mnist_train.csv', 'r'] as f:
mycsv = csv.reader[f]
for row in mycsv[:1000]:
entries.append[row]
2Bạn có thể thấy rằng ba đánh giá đầu tiên đã được bỏ qua trong khung dữ liệu này.
Để biết thêm về các tham số của hàm read_csv [], hãy tham khảo tài liệu của nó.
Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong A & NBSP; Jupyter Notebook & NBSP; với hạt nhân Python [phiên bản 3.8.3] có Pandas phiên bản 1.0.5
Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.
Các hướng dẫn tương tự khác:
- Đọc các tệp CSV bằng Pandas - với các ví dụ
- Pandas - Lưu DataFrame vào tệp Excel
Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.
Xem tất cả các bài viết