Ok tôi đã đọc một số chủ đề ở đây trên Stack Overflow. Tôi nghĩ rằng điều này sẽ khá dễ dàng đối với tôi nhưng tôi thấy rằng tôi vẫn không nắm bắt được Python rất tốt. Tôi đã thử ví dụ nằm ở cách kết hợp 2 tệp CSV với giá trị cột chung, nhưng cả hai tệp đều có số dòng khác nhau và điều đó rất hữu ích nhưng tôi vẫn không có kết quả mà tôi hy vọng sẽ đạt được.
Về cơ bản tôi có 2 tệp CSV với cột đầu tiên chung. Tôi muốn hợp nhất 2. tức là.
filea.csv
title,stage,jan,feb darn,3.001,0.421,0.532 ok,2.829,1.036,0.751 three,1.115,1.146,2.921
fileb.csv
title,mar,apr,may,jun, darn,0.631,1.321,0.951,1.751 ok,1.001,0.247,2.456,0.3216 three,0.285,1.283,0.924,956
output.csv [không phải cái tôi đang nhận được nhưng những gì tôi muốn]
title,stage,jan,feb,mar,apr,may,jun darn,3.001,0.421,0.532,0.631,1.321,0.951,1.751 ok,2.829,1.036,0.751,1.001,0.247,2.456,0.3216 three,1.115,1.146,2.921,0.285,1.283,0.924,956
đầu ra.csv [đầu ra mà tôi thực sự có]
title,feb,may ok,0.751,2.456 three,2.921,0.924 darn,0.532,0.951
Mã tôi đang thử:
'''
testing merging of 2 csv files
'''
import csv
import array
import os
with open['Z:\\Desktop\\test\\filea.csv'] as f:
r = csv.reader[f, delimiter=',']
dict1 = {row[0]: row[3] for row in r}
with open['Z:\\Desktop\\test\\fileb.csv'] as f:
r = csv.reader[f, delimiter=',']
#dict2 = {row[0]: row[3] for row in r}
dict2 = {row[0:3] for row in r}
print str[dict1]
print str[dict2]
keys = set[dict1.keys[] + dict2.keys[]]
with open['Z:\\Desktop\\test\\output.csv', 'wb'] as f:
w = csv.writer[f, delimiter=',']
w.writerows[[[key, dict1.get[key, "''"], dict2.get[key, "''"]] for key in keys]]
Bất kỳ trợ giúp nào cũng được đánh giá rất cao.
Để 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ã -
________số 8Đầu ra
Điều này sẽ tạo ra những điều sau -
Resultant CSV after joining all CSV files at a particular location... Car Place UnitsSold 0 Audi Bangalore 80 1 Porsche Mumbai 110 2 RollsRoyce Pune 100 3 BMW Delhi 95 4 Mercedes Hyderabad 80 5 Lamborghini Chandigarh 80 6 Volvo Rajasthan 150 7 Hyundai Manipur 120 8 Toyota HP 70
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