Hướng dẫn append multiple csv files python - nối nhiều tệp csv python

Tại sao bạn cần cái này?

Sao chép thủ công là tốt nếu bạn không có quá nhiều tệp để làm việc.

Nhưng hãy tưởng tượng nếu bạn có hơn 100 tệp để incatenate - bạn có sẵn sàng làm thủ công không? Làm điều này lặp đi lặp lại là tẻ nhạt và dễ bị lỗi.

Nếu tất cả các tệp có cùng cấu trúc bảng [cùng các tiêu đề & số cột], hãy để tập lệnh Python nhỏ này thực hiện công việc.

Bước 1: Nhập gói và đặt thư mục làm việc

Thay đổi trên mạng/mydir, thành thư mục làm việc mong muốn của bạn.

import os
import glob
import pandas as pd
os.chdir["/mydir"]

Bước 2: Sử dụng Quả cầu để phù hợp với mẫu ‘CSV,

Khớp với mẫu [‘CSV,] và lưu danh sách các tên tệp trong biến‘ All_filenames. Bạn có thể kiểm tra liên kết này để tìm hiểu thêm về khớp biểu thức thông thường.

extension = 'csv'
all_filenames = [i for i in glob.glob['*.{}'.format[extension]]]

Bước 3: Kết hợp tất cả các tệp trong danh sách và xuất dưới dạng CSV

Sử dụng gấu trúc để kết hợp tất cả các tệp trong danh sách và xuất dưới dạng CSV. Tệp đầu ra được đặt tên là Kết hợp_csv.csv, nằm trong thư mục làm việc của bạn.

#combine all files in the list
combined_csv = pd.concat[[pd.read_csv[f] for f in all_filenames ]]
#export to csv
combined_csv.to_csv[ "combined_csv.csv", index=False, encoding='utf-8-sig']

Mã hóa = ‘UTF-8-SIG, được thêm vào để khắc phục vấn đề khi xuất các ngôn ngữ không phải là tiếng Anh.

Và nó đã hoàn thành!

Bài viết này được lấy cảm hứng từ vấn đề thực tế hàng ngày của tôi và cấu trúc mã hóa là từ một cuộc thảo luận về Stackoverflow. Tập lệnh hoàn thành cho cách làm điều này được ghi lại trên GitHub.

Cảm ơn bạn đã đọc. Hãy thử, vui vẻ và cho tôi biết phản hồi của bạn!

Nếu bạn thích những gì tôi đã làm, hãy xem xét theo dõi tôi trên GitHub, Medium và Twitter. Hãy chắc chắn để sao nó trên github: p

Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Giả sử bạn có 2 tệp

extension = 'csv'
all_filenames = [i for i in glob.glob['*.{}'.format[extension]]]
2 như sau:

csv1.csv:

id,name
1,Armin
2,Sven

csv2.csv:

id,place,year
1,Reykjavik,2017
2,Amsterdam,2018
3,Berlin,2019

Và bạn muốn kết quả giống như CSV3.CSV này:

id,name,place,year
1,Armin,Reykjavik,2017
2,Sven,Amsterdam,2018
3,,Berlin,2019

Sau đó, bạn có thể sử dụng đoạn trích sau để làm điều đó:

import csv
import pandas as pd

# the file names
f1 = "csv1.csv"
f2 = "csv2.csv"
out_f = "csv3.csv"

# read the files
df1 = pd.read_csv[f1]
df2 = pd.read_csv[f2]

# get the keys
keys1 = list[df1]
keys2 = list[df2]

# merge both files
for idx, row in df2.iterrows[]:
    data = df1[df1['id'] == row['id']]

    # if row with such id does not exist, add the whole row
    if data.empty:
        next_idx = len[df1]
        for key in keys2:
            df1.at[next_idx, key] = df2.at[idx, key]

    # if row with such id exists, add only the missing keys with their values
    else:
        i = int[data.index[0]]
        for key in keys2:
            if key not in keys1:
                df1.at[i, key] = df2.at[idx, key]

# save the merged files
df1.to_csv[out_f, index=False, encoding='utf-8', quotechar="", quoting=csv.QUOTE_NONE]

Với sự trợ giúp của một vòng lặp, bạn có thể đạt được kết quả tương tự cho nhiều tệp như trong trường hợp của bạn [200 tệp CSV].

Để hợp nhất tất cả các tệp CSV, sử dụng mô -đun GLOB. Phương thức OS.Path.join [] được sử dụng bên trong Concat [] để hợp nhất các tệp CSV lại với nhau.

Lúc đầu, nhập các thư viện cần thiết. Chúng tôi đã đặt PD làm bí danh cho thư viện Pandas -

import pandas as pd
import glob
import os

Bây giờ, hãy để nói rằng chúng tôi có 3 tệp CSV sau -

Sales1.csv

Sales2.csv

Sales3.csv

Lúc đầu, đặt đường dẫn để tham gia nhiều tệp. Chúng tôi có tất cả các tệp CSV sẽ được hợp nhất trên máy tính để bàn -

files = os.path.join["C:\Users\amit_\Desktop\", "sales*.csv"]

Tiếp theo, sử dụng GLOB để trả về danh sách các tệp được hợp nhất -

files = glob.glob[files]

Thí dụ

Sau đây là mã -

extension = 'csv'
all_filenames = [i for i in glob.glob['*.{}'.format[extension]]]
0

Đầu ra

Điều này sẽ tạo ra những điều sau -

extension = 'csv'
all_filenames = [i for i in glob.glob['*.{}'.format[extension]]]
1

Cập nhật vào ngày 04 tháng 10 năm 2021 07:12:14

  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để hợp nhất nhiều tệp CSV thành một DataFrame Pandas?
  • Python - Đọc tất cả các tệp CSV trong một thư mục trong gấu trúc?
  • Python - Cách viết Pandas DataFrame vào tệp CSV
  • Viết một tệp dữ liệu gấu trúc vào tệp CSV
  • Python - hợp nhất hai gấu trúc DataFrame
  • Python Pandas- Tạo nhiều tệp CSV từ tệp CSV hiện có
  • Python - Cách hợp nhất tất cả các tệp Excel trong thư mục
  • Làm thế nào để hợp nhất nhiều tệp vào một tệp mới bằng Python?
  • Làm thế nào để xử lý các tệp CSV lớn với gấu trúc?
  • Làm thế nào để đọc tất cả các tệp Excel trong một thư mục dưới dạng gấu trúc DataFrame?
  • Python - hợp nhất DataFrame với tham gia bên ngoài
  • Python - hợp nhất DataFrame với tham gia bên trong
  • Python Pandas - Merge DataFrame với giá trị chỉ báo
  • Hợp nhất gấu trúc DataFrame với một cột chung
  • Python - Merge Pandas DataFrame với tham gia bên ngoài bên phải

Làm cách nào để thêm nhiều tệp CSV vào Python?

Bạn có thể thực hiện đ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 khung dữ liệu để tạo một khung dữ liệu duy nhất với dữ liệu từ tất cả các tệp. Ở đây, tôi sẽ sử dụng read_csv [] để đọc các tệp CSV và hàm concat [] để kết hợp các dữ liệu với nhau để tạo một khung dữ liệu lớn.reading each CSV file into DataFrame and appending or concatenating the DataFrames to create a single DataFrame with data from all files. Here, I will use read_csv[] to read CSV files and concat[] function to concatenate DataFrams together to create one big DataFrame.

Làm cách nào để nối nhiều tệp CSV?

Để kết hợp nhiều tệp CSV vào một sổ làm việc excel, đây là các bước bạn cần tuân theo:..
Đặt tất cả các tệp CSV của bạn vào một thư mục.....
Trên tab Dữ liệu, trong nhóm dữ liệu GET & Biến đổi, nhấp vào Nhận dữ liệu> từ tệp> từ thư mục ..
Duyệt cho thư mục mà bạn đã đặt các tệp CSV và nhấp vào mở ..

Làm cách nào để hợp nhất nhiều tệp CSV thành gấu trúc?

Để hợp nhất tất cả các tệp CSV, sử dụng mô -đun GLOB.Hệ điều hành.đường dẫn.Phương thức nối [] được sử dụng bên trong Concat [] để hợp nhất các tệp CSV lại với nhau.use the GLOB module. The os. path. join[] method is used inside the concat[] to merge the CSV files together.

Làm cách nào để nối nhiều tệp vào một python?

Sau đây là các bước để hợp nhất.Mở tệp1.TXT và FILE2.txt trong chế độ đọc ...
Tạo một danh sách chứa tên tệp ..
Mở File3 ở chế độ ghi ..
Lặp lại qua danh sách và mở từng tệp ở chế độ đọc ..
Đọc dữ liệu từ các tệp và đồng thời viết dữ liệu trong File3 ..
Đóng tất cả các tệp ..

Bài Viết Liên Quan

Chủ Đề