Đôi khi, bạn có thể cần đọc hoặc nhập nhiều tệp CSV từ một thư mục hoặc từ danh sách tệp và chuyển đổi chúng thành DataFrame của gấu trúc. Bạn có thể làm điều này bằng cách đọc từng tệp CSV vào DataFrame và nối thêm hoặc nối các DataFrame để tạo một DataFrame duy nhất có dữ liệu từ tất cả các tệp
Ở đây, tôi sẽ sử dụng read_csv[] để đọc tệp CSV và hàm concat[] để nối các DataFrame lại với nhau để tạo một DataFrame lớn
1. Đọc nhiều tệp CSV từ danh sách
Khi bạn muốn đọc nhiều tệp CSV tồn tại trong các thư mục khác nhau, trước tiên hãy tạo danh sách các chuỗi có đường dẫn tuyệt đối và sử dụng danh sách đó như được hiển thị bên dưới để tải tất cả các tệp CSV và tạo một Khung dữ liệu gấu trúc lớn
# Read CSV files from List
df = pd.concat[map[pd.read_csv, ['d1.csv', 'd2.csv','d3.csv']]]
Lưu ý rằng theo mặc định, phương thức concat[] thực hiện nghĩa hoạt động nối thêm, nó nối thêm từng DataFrame vào cuối một DataFrame khác và tạo một DataFrame duy nhất. Tương tự với SQL union
2. Đọc nhiều tệp CSV từ một thư mục
Thật không may, read_csv[] không hỗ trợ đọc nhiều tệp CSV từ một thư mục vào DataFrame, có thể trong các phiên bản pandas trong tương lai, nó có thể hỗ trợ nó, cho đến lúc đó chúng tôi phải sử dụng giải pháp thay thế để đọc nhiều tệp CSV từ một thư mục và hợp nhất chúng vào DataFrame
# Import libraries
import glob
import pandas as pd
# Get CSV files list from a folder
path = '/apps/data_csv_files
csv_files = glob.glob[path + "/*.csv"]
# Read each CSV file into DataFrame
# This creates a list of dataframes
df_list = [pd.read_csv[file] for file in csv_files]
# Concatenate all DataFrames
big_df = pd.concat[df_list, ignore_index=True]
Một cách tiếp cận khác sử dụng hàm map[]
df = pd.concat[map[pd.read_csv, glob.glob[path + "/*.csv"]]]
Trong trường hợp bạn muốn sử dụng các tham số tùy chọn của hàm read_csv[], hãy sử dụng nó bằng cách xác định hàm
# By using function
def readcsv[args]:
return pd.read_csv[args, header=None]
df = pd.concat[map[readcsv, filepaths]]
3. Sử dụng khung dữ liệu Dask
Dask Dataframes triển khai một tập hợp con của API khung dữ liệu Pandas. Nếu tất cả dữ liệu phù hợp với bộ nhớ, bạn có thể chuyển đổi DataFrame thành Pandas DataFrame
Thư viện Dask có thể được sử dụng để đọc khung dữ liệu từ nhiều tệp. Trước khi bạn sử dụng thư viện Dask, trước tiên bạn cần cài đặt nó bằng lệnh pip hoặc bất kỳ phương pháp nào khác
# Using data library
import dask.dataframe as dd
df = dd.read_csv[path + "/*.csv"]
Phần kết luận
Trong bài viết này, bạn đã học được nhiều cách đọc tệp CSV từ một thư mục và tạo một DataFrame lớn. Vì hàm read_csv[] không hỗ trợ đọc nên bạn phải sử dụng cách tải từng CSV vào một DataFrame riêng biệt và kết hợp chúng bằng hàm concat[]
Đây là một giải pháp thay thế cho thư viện pandas bằng mô-đun csv tích hợp của Python
import csv
from pprint import pprint
with open['foo.csv', 'rb'] as f:
reader = csv.reader[f]
headers = reader.next[]
column = {h:[] for h in headers}
for row in reader:
for h, v in zip[headers, row]:
column[h].append[v]
pprint[column] # Pretty printer
sẽ in
{'Date': ['2012-06-11',
'2012-06-12',
'2012-06-13',
'2012-06-14',
'2012-06-15',
'2012-06-16',
'2012-06-17'],
'factor_1': ['1.255', '1.258', '1.249', '1.253', '1.258', '1.263', '1.264'],
'factor_2': ['1.548', '1.554', '1.552', '1.556', '1.552', '1.558', '1.572'],
'price': ['1600.20',
'1610.02',
'1618.07',
'1624.40',
'1626.15',
'1626.15',
'1626.15']}
Tạo khung dữ liệu bằng tệp CSV
Cải thiện bài viết
Lưu bài viết
Thích bài viết
- Độ khó. Trung bình
- Cập nhật lần cuối. 17 tháng 2 năm 2022
Cải thiện bài viết
Lưu bài viết
Tệp CSV là “các giá trị được phân tách bằng dấu phẩy”, các giá trị này được phân tách bằng dấu phẩy, tệp này có thể được xem như một tệp excel. Trong Python, Pandas là thư viện quan trọng nhất đối với khoa học dữ liệu. Chúng tôi cần xử lý các tập dữ liệu khổng lồ trong khi phân tích dữ liệu, thường có thể nhận được ở định dạng tệp CSV. Có thể tạo khung dữ liệu gấu trúc bằng tệp CSV theo nhiều cách
Ghi chú. Lấy tệp csv được sử dụng trong các ví dụ dưới đây từ đây
Phương pháp số 1. Sử dụng phương thức read_csv[]. read_csv[] là một chức năng gấu trúc quan trọng để đọc các tệp csv và thực hiện các thao tác trên đó
Thí dụ.
Python3
________số 8_______
# creating a data frame using CSV files
# import pandas module
import
pandas as pd
# creating a data frame
df
=
pd.read_csv["CardioGoodFitness.csv"]
# Python program to illustrate
0# Python program to illustrate
1
đầu ra
Phương pháp #2. Sử dụng phương thức read_table[]. read_table[] là một chức năng gấu trúc quan trọng khác để đọc các tệp csv và tạo khung dữ liệu từ nó
Thí dụ.
Python3
________số 8_______
# creating a data frame using CSV files
# import pandas module
import
pandas as pd
# creating a data frame
df
=
# creating a data frame using CSV files
0=
# creating a data frame using CSV files
2
# Python program to illustrate
0# Python program to illustrate
1
đầu ra
Phương pháp #3. Sử dụng mô-đun csv. Người ta có thể nhập trực tiếp các tệp csv bằng mô-đun csv và sau đó tạo khung dữ liệu bằng tệp csv đó
Thí dụ.
Python3
________số 8_______
# creating a data frame using CSV files
# import pandas module
import
pandas as pd
# import pandas module
0
import
# import pandas module
2
# import pandas module
3# import pandas module
4# import pandas module
5
# import pandas module
6_______10_______7
# import pandas module
6_______10_______9=
import
1
# import pandas module
6_______11_______3
# import pandas module
6_______14_______=
import
7=
import
9pandas as pd
0
pandas as pd
1
pandas as pd
2 pandas as pd
3pandas as pd
4 pandas as pd
5_______12_______6pandas as pd
7pandas as pd
8
# import pandas module
6_______8_______0# creating a data frame
1
đầu ra.
['TM195', '18', 'Male', '14', 'Single', '3', '4', '29562', '112']
Ghi chú cá nhân của tôi arrow_drop_up
Tiết kiệm