Trích xuất dữ liệu từ nhiều tệp csv python

Tôi có nhiều tệp CSV, trong đó có gần 1k+ hàng trong mỗi tệp và chỉ có 2 cột, cột đầu tiên của mỗi tệp giống nhau đối với mọi tệp CSV nhưng cột thứ 2 dành riêng cho mọi giá trị khác như đối với Công suất động cơ xe máy . Tôi đã thử trích xuất dữ liệu từ tất cả các tệp CSV và thêm chúng vào danh sách nhưng tôi không nhận được câu trả lời thích hợp. Dưới đây là phương pháp tôi đã thử

import numpy as np
import pandas as pd
import glob
csvs = glob.glob['D:/Project/*.csv']
print[csvs]
a = []
for proj in csvs:
    df1 = pd.read_csv[proj, index_col=None, header = 0]
    a.append[df1]
print[a]#Check Output 1
df2 = pd.concat[a, axis=0, ignore_index=True]
df2.head[]#check output 2

#Đầu ra 1

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]

#Đầu ra 2

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN

Nó không đưa ra đầu ra chính xác cho các cột khác, nó chỉ đưa ra đầu ra chính xác cho tệp đầu tiên, bất kể nó lấy gì và phần còn lại, nó cho NaN. Tôi đang làm gì ở đây

Thông thường, với tư cách là nhà phân tích dữ liệu, bạn có thể thấy mình bị quá tải với nhiều tệp CSV cần được kết hợp với nhau trước khi bạn có thể bắt đầu phân tích dữ liệu có sẵn. Tuy nhiên, không phải lúc nào tất cả các tệp đều được trích xuất từ ​​cùng một nguồn dữ liệu và có cùng cột dữ liệu hoặc theo cùng một cấu trúc dữ liệu

Trong hướng dẫn này, bạn sẽ tìm hiểu cách kết hợp nhiều CSV với cấu trúc cột tương tự hoặc khác nhau và cách sử dụng các hàm

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
5,
#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
6,
#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
7 và
#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
8 để làm như vậy

Trước khi chúng tôi làm điều đó, hãy xem cách nhập một tệp csv vào khung dữ liệu bằng gói Pandas

1. Nhập tệp vào DataFrames của gấu trúc

Để nhập một tệp vào khung dữ liệu, bạn chỉ cần sử dụng hàm

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
9

________số 8

Khi bạn có nhiều tệp để làm việc, cách tốt nhất là dán tất cả các tệp vào một thư mục và sau đó đọc tất cả các tệp này bằng hàm

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
9

2. Thiết lập thư mục làm việc

Một phương pháp là chuyển đường dẫn của thư mục vào một biến và sau đó liệt kê tất cả các tệp trong thư mục đó

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list

Mặt khác, nếu bạn muốn đọc các tệp từ cùng thư mục với tệp ipynb của mình, bạn có thể sử dụng mã bên dưới

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
1

Phương pháp thứ ba là sử dụng hàm

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
11 để chỉ liệt kê các tệp csv từ thư mục làm việc

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
3

Giờ đây, để đọc nhiều tệp CSV có cấu trúc bảng tương tự, bạn có thể sử dụng các hàm

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
12 HOẶC
[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
13

Hãy xem 3 tệp CSV mẫu mà chúng tôi sẽ làm việc với

csv_sample1. csv

csv_sample2. csv

csv_sample3. csv

Cả ba tệp đều có tiêu đề cột giống nhau ngoại trừ csv_Sample2. csv có một cột bổ sung có tên “Ngày sinh”. Ngoài ra, lưu ý rằng có 2 mục phổ biến giữa csv_Sample1. csv và csv_Sample2. csv, như được đánh dấu. Đây, mục nhập cho “Tom R. Powell” có các giá trị “Ngày tham gia” khác nhau trong cả hai tệp. Lưu ý cách các mục này được kết hợp trong tất cả các phương pháp được sử dụng bên dưới

3. Kết hợp nhiều tệp với cấu trúc bảng tương tự bằng gấu trúc. Khung dữ liệu. nối thêm []

Sử dụng đoạn mã dưới đây để đọc và kết hợp tất cả các tệp csv từ thư mục đã đặt trước đó

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
6

Kết quả sau khi sử dụng hàm

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
5 như bên dưới

Tại đây, bạn có thể thấy rằng tất cả các hàng dữ liệu từ các tệp đã được thêm vào bên dưới hàng khác. Tuy nhiên, các giá trị NaN đã được chèn vào cột “Ngày sinh” vì các giá trị này không có trong csv_sample1. csv và csv_sample3. tệp csv

4. Kết hợp nhiều tệp với cấu trúc bảng tương tự bằng gấu trúc. concat[]

Một cách khác để kết hợp các tệp là sử dụng

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
15, như hình bên dưới

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
9

Bây giờ, nếu bạn muốn nối các hàng dữ liệu của các tệp dựa trên các cột liên quan thì bạn có thể sử dụng hàm

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]
16

5. Sử dụng gấu trúc. Khung dữ liệu. merge[] để nối các hàng dữ liệu

Trước tiên, hãy đọc các tệp thành các tệp dữ liệu riêng biệt như bên dưới

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN
1

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN
2

Bây giờ, trong khi sử dụng

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
7 giữa các khung dữ liệu này, bạn cần chỉ định các cột có liên quan mà bạn muốn nối các hàng

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN
4

Hàm chỉ nối tất cả các hàng khi tất cả các giá trị của các cột đã chỉ định khớp nhau

Ở đây, chúng tôi đã sử dụng phương pháp nối ngoài để hợp nhất các tệp. Để tìm hiểu thêm về loại hợp nhất sẽ được thực hiện, bạn có thể tham khảo liên kết này. gấu trúc. hợp nhất[]

Trong ví dụ trên, chúng tôi đã chuyển một danh sách các tên cột mà chúng tôi muốn nối các hàng. Thay vào đó, nếu chúng ta chỉ nối các hàng trên cột “Email” thì chúng ta sẽ nhận được kết quả như bên dưới

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN
5

Bây giờ, nếu bạn muốn tạo một khung dữ liệu với các giá trị giả sử, csv_sample1. csv và bất cứ nơi nào null, hãy lấy các giá trị từ một tệp khác, chẳng hạn như csv_sample2. csv sau đó sử dụng

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
8

6. Cập nhật giá trị null trong các cột từ các cột khác bằng gấu trúc. tổ hợp_đầu tiên[]

Thay thế '_x' từ tiêu đề cột

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
0

Vượt qua tất cả các tên cột mà bạn muốn áp dụng

#import the modules
import os
import pandas as pd
#read the path
file_path = "D:\Blog\Merge_Files\csv_files"
#list all the files from the directory
file_list = os.listdir[file_path]
file_list
8. Một cách dễ dàng là tìm nạp các cột có '_y' trong tiêu đề và sau đó xóa '_y' khỏi chúng, như bên dưới

Làm cách nào để đọc 2 tệp CSV trong python?

Đọc nhiều tệp CSV vào một khung bằng Python .
Liên kết đến dữ liệu nguồn
gấu trúc. Qua read_csv. Thông qua read_csvs của Pyjanitor. Qua read_csv và dòng lệnh. Thông qua read_commandline của Pyjanitor
bảng dữ liệu. qua iread. qua fread. Qua fread và dòng lệnh
Tài nguyên được sử dụng

Làm cách nào để đọc nhiều tệp CSV trong python mà không cần gấu trúc?

với open nhận 2 đối số, một là vị trí và tên tệp [còn được gọi là. đường dẫn tệp] và cách bạn muốn mở tệp [“r” để đọc, “w” để ghi]. vì csvfile có nghĩa là bạn sẽ mở tệp và gọi nó là csvfile, sau này được chuyển thành một đối số trong csv. trình đọc [csvfile, dấu phân cách =”,”] trên dòng 4

Làm cách nào để đọc tất cả CSV trong một thư mục Python?

Làm cách nào để đọc tất cả các tệp CSV trong pandas? .
nhập khẩu toàn cầu
nhập hệ điều hành
nhập gấu trúc dưới dạng pd
all_files = toàn cầu. toàn cầu ["động vật/*. csv"]
df = pd. concat[[pd. read_csv[f] cho f trong all_files]]
in [df]

Làm cách nào để trích xuất dữ liệu từ tệp CSV bằng Python bằng gấu trúc?

Các bước để nhập tệp CSV vào Python bằng Pandas .
Bước 1. Nắm bắt đường dẫn tệp. Đầu tiên, nắm bắt đường dẫn đầy đủ nơi tệp CSV của bạn được lưu trữ. .
Bước 2. Áp dụng mã Python. .
Bước 3. Chạy mã. .
Bước tùy chọn. Chọn tập hợp con của các cột

Chủ Đề