Hướng dẫn how do you edit a csv file in python? - làm cách nào để chỉnh sửa tệp csv trong python?
Bây giờ tôi biết thường không khả thi để sửa đổi tệp CSV khi bạn đang đọc từ đó để bạn cần tạo một tệp CSV mới và ghi vào nó. Vấn đề tôi đang gặp phải là bảo tồn thứ tự ban đầu của dữ liệu. Show
Tệp CSV đầu vào trông giống như sau:
Tôi muốn biến tất cả dữ liệu thành chữ thường và xuất một tệp CSV mới trông giống như:
Cho đến nay tôi có thể lặp lại thông qua tệp CSV đầu vào và biến tất cả các giá trị thành chữ thường nhưng tôi không biết cách viết lại nó thành tệp CSV ở định dạng đó. Mã tôi có là:
Vì vậy, bây giờ tôi có một danh sách với tất cả các dữ liệu viết thường, làm cách nào để viết lại nó thành một tệp CSV có cùng định dạng (cùng số lượng hàng và cột) như đầu vào bao gồm hàng tiêu đề mà tôi đã bỏ qua trong mã. Cách đọc và ghi các tệp CSV bằng PythonXin chào! Tôi là Greg Sadetsky và tôi dạy các lớp Python tại Protech. Hôm nay, chúng tôi sẽ thực hiện một chút chương trình Python. Hướng dẫn này được thiết kế cho bất kỳ ai quan tâm đến Python, không có kinh nghiệm nào và tò mò tìm hiểu những gì có thể với một vài kỹ năng lập trình cơ bản. Bạn có thể xem hướng dẫn đầy đủ bên dưới hoặc bỏ qua các phần riêng lẻ, ngay sau bảng nội dung. Mục lục:
Giới thiệu về Python cho người mới bắt đầuĐây là một tình huống ví dụ: Bạn là người tổ chức một bữa tiệc và đã tổ chức sự kiện này trong hai năm. Bạn có các tệp CSV (giá trị phân tách dấu phẩy) cho cả hai năm liệt kê những người tham dự mỗi năm. Bạn muốn biết những người tham dự đã tham dự bash thứ hai, nhưng không phải là người đầu tiên. Thiết lập môi trường cho việc đọc tệp CSV PythonChúng tôi có một khởi đầu tuyệt vời! Err ... bạn đã cài đặt Python trên máy tính của mình chưa? Nếu bạn đang chạy theo Mac OS X, hãy mở ứng dụng thiết bị đầu cuối từ thư mục tiện ích và loại 1Terminal application from the Utilities directory and type 1Người dùng Windows nên theo dõi bài viết này để cài đặt nó. Đề xuất của tôi sẽ là có được phiên bản 2.7 mới nhất (ví dụ 2,7.6). Khi bạn đã chạy Python thực thi, bạn sẽ thấy một dòng bắt đầu với ba dấu hiệu lớn hơn. Nó sẽ trông giống thế này:
Điều đó thật tuyệt! Hãy thử một số arithmetics cơ bản, ví dụ gõ vào 2 và nhấn phím Enter. Khi bạn đã thấy câu trả lời của trình thông dịch lại, bạn có thể thoát nó bằng cách nhập 3 và nhấn Enter.Mở tệp CSV với PythonTạo một tệp văn bản mới trong trình soạn thảo yêu thích của bạn và đặt cho nó một tên hợp lý, ví dụ như new_attendees.py. Phần mở rộng .py là điển hình của các tệp chương trình Python.new_attendees.py. The .py extension is typical of Python program files. Chúng tôi sẽ sử dụng các tệp dữ liệu CSV ví dụ sau (tất cả tên người tham dự và email được tạo ngẫu nhiên): người tham dự1.csv và người tham dự2.csv. Hãy tiếp tục và tải xuống các tập tin này vào máy tính của bạn. Đặt chúng trong cùng một thư mục trong đó tệp chương trình của bạn, new_attendees.py, sống. Python cho phép bạn mở các tệp văn bản như thế này và đọc nội dung của chúng, tất cả cùng một lúc hoặc từng dòng. Trong trường hợp các tệp CSV, chúng tôi sẽ sử dụng một mô-đun tích hợp để Python sẽ đơn giản hóa việc phân tích cú pháp của chúng. Các mô -đun trong câu hỏi được gọi, đơn giản, CSV.csv. Chúng tôi sẽ cần một vài điều để bắt đầu: Đầu tiên, vì chúng tôi sẽ sử dụng mô -đun CSV trong mã của chúng tôi, chúng tôi sẽ cần cho Python biết về điều này. Mặc dù Python cung cấp cho bạn một số mô-đun tích hợp, bạn cần khai báo rõ ràng những mô-đun nào bạn sẽ sử dụng. Điều này sẽ trở thành dòng đầu tiên của chương trình của chúng tôi:
Bây giờ chúng tôi đã sẵn sàng để viết phần còn lại của chương trình. Chúng tôi sẽ mở tệp CSV đầu tiên, lưu trữ tham chiếu đến tệp mở này dưới dạng 4 và sau đó chuyển tham chiếu này đến mô -đun CSV. Cụ thể, hàm 5 sẽ phân tích tệp mở và trả về một danh sách phân tích cú pháp các hàng. Đây là những gì nó muốn cho đến nay:
Để chạy chương trình này, trong thiết bị đầu cuối của bạn, hãy vào thư mục chứa tệp chương trình Python và các tệp CSV của người tham dự và nhập 6Vòng lặp qua các hàng tệp CSV PythonMặc dù mã ở trên là hợp lệ, nhưng nó hơi không thỏa mãn vì nó không xuất bất kỳ dữ liệu nào, khiến cho việc theo dõi một chút khó khăn ... hãy in ra các hàng có trong tệp CSV bằng cách lặp qua danh sách 7.
Bạn sẽ thấy rằng chúng tôi đã thêm hai dòng - một dòng là vòng lặp xác định rằng đối với các dòng thụt sau đây, biến 8 phải chứa từng phần tử từ danh sách và dòng thứ hai (được thụt vào, vì chúng tôi muốn dòng này là một phần của vòng lặp cho) sẽ in biến 8 này.for loop which defines that for the following indented lines, the 8 variable should contain each element from the list, and the second line (indented, since we want this line to be part of the for loop) which will print this 8 variable.Chúng ta nhận được gì? Sắc đẹp!
Danh sách này nên tiếp tục. Vâng, đó là danh sách những người tham dự từ tệp tham dự1.csv! Hoan hô! Trích xuất thông tin từ tệp CSV PythonMỗi hàng mà chúng tôi đang lặp lại quá mức một đối tượng danh sách (____ 27 là danh sách các danh sách). Chúng ta có thể thấy các danh sách này (tương ứng với các hàng trong tệp CSV của người tham dự) được tạo thành từ ba yếu tố, thứ ba là địa chỉ e-mail mà chúng tôi muốn sử dụng để so sánh người tham dự. Trong Python, dấu ngoặc vuông được sử dụng để truy cập một phần tử nằm ở một vị trí nào đó ("index") trong danh sách. Cụ thể, đối với danh sách 1 chứa 2, chúng tôi sẽ viết 3 để truy cập phần tử đầu tiên của nó (danh sách Python được chỉ số 0, giống như trong nhiều ngôn ngữ lập trình khác-xem điều này). Tất cả cùng nhau, như một ví dụ khác, để in yếu tố "thứ 2" (trong con người) của danh sách, bạn sẽ viết:
Điều này nên in ra màu xanh lá cây.green. Quay lại tệp CSV người tham dự của chúng tôi, để in ra địa chỉ e-mail của mỗi người tham dự, chúng tôi sẽ sửa đổi mã một chút để nhận được:
Chạy mã này và bạn sẽ xem địa chỉ e-mail của mỗi người tham dự được in ra. Hầu như ở đó! Tạo danh sách cho các tệp CSV trong PythonChúng tôi đã thành công trong việc truy cập và in địa chỉ e-mail từ mỗi hàng trong tệp CSV. Bây giờ chúng ta hãy tạo một đối tượng danh sách trống mà chúng ta sẽ điền với các địa chỉ e-mail đó. Điều này, một lần nữa, là cho phép chúng tôi so sánh những người tham dự năm thứ nhất với năm thứ hai. Điều đầu tiên trước tiên - hãy tạo một danh sách trống. Một danh sách trống được gán cho một biến bằng cách viết như sau: 0Để nối các phần tử vào danh sách này (vì một cái trống sẽ không được sử dụng nhiều), chúng tôi sẽ sử dụng phương thức ____34 của danh sách. Xem xét danh sách được tạo ở trên, nối thêm một chuỗi vào nó sẽ xem xét điều này: 1Nó có hoạt động không? Chúng tôi có thể xác minh bằng cách in đối tượng danh sách: 2Chúng ta nên xem: 3tức là, một danh sách với một yếu tố trong đó! Tuyệt quá! Sửa đổi mã mà chúng tôi đã làm việc cho đến nay cung cấp cho chúng tôi điều này: 4Sau khi chạy, mã này sẽ in một danh sách duy nhất (sẽ xuất hiện dưới dạng một dòng dài, duy nhất) với tất cả các email của người tham dự. Có gì thiếu không? Chà, mã trên chỉ chạy trên những người tham dự từ bên đầu tiên của năm đầu tiên (vì chúng tôi chỉ đọc tệp tham dự1.csv). Chúng ta nên thực hiện xử lý tương tự (nghĩa là, trích xuất các địa chỉ e-mail) trên tệp thứ hai. Để giữ cho ví dụ này đơn giản, chúng tôi đã quyết định sao chép mã xử lý tệp tham dự1.csv và thực hiện gần như các hoạt động tương tự cho người tham dự2.csv. Một lời cảnh báo! Sao chép và dán mã như chúng tôi sẽ làm dưới đây được coi là thực hành xấu. Chúng tôi đang làm điều đó ở đây để giữ cho mã có thể đọc được - cách điển hình và tốt hơn sẽ là loại bỏ những gì phổ biến cho mã được sao chép/dán và đặt mã đó vào một khối có thể tái sử dụng (một hàm). Vì vậy, hãy nhớ rằng chúng tôi đang hy sinh chất lượng mã để dễ hiểu.A word of warning! Copying & Pasting code as we'll do below is considered bad practice. We're doing it here to keep the code readable -- the typical and better way would be to take out what's common to the code that's being copied/pasted and to put that code into a reusable block (a function). So, do keep in mind that we're sacrificing code quality for ease of understanding. Sau khi được sửa đổi, mã ở trên bây giờ thực hiện các bước tương tự cho cả người tham dự1.csv và người tham dự. 5Chuyển đổi danh sách thành các bộ cho tệp CSV PythonHai bước nữa còn lại. Trước tiên chúng tôi sẽ chuyển đổi các danh sách chúng tôi có ( 5 và 6) thành các bộ. Một tập hợp là một kiểu dữ liệu giống như một danh sách, trong đó nó lưu trữ một số đối tượng, nhưng với sự khác biệt mà các đối tượng không được đặt hàng và tất cả các đối tượng chứa đều có duy nhất. Vì vậy, một tập hợp có thể chứa 2, 5, 4 (không theo thứ tự cụ thể) nhưng không phải 2, 2, 4, 6, 6 vì các bộ chỉ chứa các giá trị duy nhất.2, 5, 4 (in no particular order) but not 2, 2, 4, 6, 6 since sets only contain unique values.Bằng cách chuyển đổi danh sách của chúng tôi thành các bộ, chúng tôi sẽ có khả năng so sánh các giá trị của hai danh sách. Để chuyển đổi danh sách thành một tập hợp, chỉ cần chuyển danh sách sang hàm set (). Do đó:set() function. Thus: 6... sẽ dẫn đến đầu ra sau: 7Bạn có thể nhận thấy rằng giá trị 5 chỉ xuất hiện một lần trong tập hợp của chúng tôi, mặc dù nó có mặt hai lần trong my_list. Việc thêm các hoạt động chuyển đổi đã đặt vào mã của chúng tôi cung cấp cho chúng tôi:5 appears only once in our set, although it was present twice in my_list. Adding the set conversion operations to our code gives us: 8Xuất ra sự khác biệt giữa 2 bộMột bước cuối cùng! Chúng tôi đã tạo ra các bộ trong số các địa chỉ e-mail của người tham dự cụ thể để so sánh chúng. Hãy làm điều đó! Bộ hỗ trợ nhiều hoạt động, một trong số đó sẽ cho chúng tôi biết các yếu tố nào của một bộ không có trong một bộ khác. Hãy thử một ví dụ đơn giản bằng cách tạo hai bộ: 9Đúng như dự đoán, kết quả phải là 1, 7, 8, 9. Lưu ý rằng thứ tự mà các yếu tố kết quả này xuất hiện có thể trông khác nhau - điều này là do các bộ không được đặt hàng.1, 7, 8, 9. Note that the order in which these resulting elements appear might look different -- this is because sets are unordered. Chúng tôi thấy rằng việc gọi phương thức 7 thực hiện những gì chúng tôi muốn làm với địa chỉ e-mail của người tham dự! Vì vậy, không có gì khó chịu, chúng ta hãy tiếp tục và xác định ai đã tham dự bữa tiệc thứ hai và không có mặt ở lần đầu tiên! 0Bạn sẽ thấy một bộ 19 địa chỉ e-mail được in ra. Chúng ta làm được rồi! Bravo! Bất kỳ câu hỏi? Vui lòng hỏi dưới đây. Muốn tìm hiểu thêm? Protech cung cấp đào tạo Python riêng, được giao tại chỗ hoặc trực tuyến cho các nhóm từ 4 trở lên, cũng như các lớp học mở cửa cho công chúng:
Làm cách nào để cập nhật tệp CSV hiện có trong Python?Làm cách nào để nâng cấp tệp CSV bằng Pandas ?.. Tải CSV vào DataFrame: Nhập Pandas dưới dạng PD. .... In DataFrame mà không cần phương thức TO_STRING (): Nhập Pandas dưới dạng PD .. Kiểm tra số lượng hàng tối đa đã trả lại: nhập pandas dưới dạng pd .. Tăng số lượng hàng tối đa để hiển thị toàn bộ DataFrame: Nhập Pandas dưới dạng PD .. Làm cách nào để chỉnh sửa dữ liệu trong tệp CSV?Mở tệp CSV bằng cách sử dụng trình hướng dẫn nhập văn bản.. Đảm bảo loại dữ liệu được đặt thành phân đoạn.Nhấn tiếp.. Đặt dấu phân cách thành dấu phẩy (chỉ) và tab bỏ chọn.Nhấn tiếp.. Đối với mỗi cột, đặt định dạng dữ liệu thành văn bản, thay vì chung.Để làm điều này một cách nhanh chóng, bạn có thể chọn tất cả các cột cùng một lúc .. Làm cách nào để chỉnh sửa văn bản trong tệp CSV?Chỉnh sửa dữ liệu trong tệp CSV.. Thêm một tiêu đề (phải là phải!). Chèn hàng và/hoặc cột nếu bạn cần thêm dữ liệu vào tệp của mình .. Áp dụng bộ lọc hoặc sắp xếp dữ liệu của bạn để điều hướng nhanh các điểm dữ liệu cụ thể .. Tìm kiếm và thay thế nếu bạn cần sửa các giá trị dữ liệu .. và như thế!. Làm cách nào để chỉnh sửa tệp CSV trong gấu trúc?Chúng ta có thể sửa đổi tệp CSV này bằng cách sử dụng gấu trúc bằng cách thay đổi một số giá trị ô.Đối với điều đó, chúng ta cần nhập tệp CSV vào DataFrame trước tiên. Sau đó chúng ta có thể thay đổi các giá trị ô bằng cách chọn chúng bằng nhãn hàng/cột hoặc theo vị trí chỉ mục.Ví dụ: chúng ta có thể thay đổi giá trị của ô ở hàng 'C' và cột 'tuổi' thành 56, tức làimport a CSV file to a DataFrame first. Then we can change cell values by selecting them either by row/column labels or by index positions. For example, we can change the value of the cell at row 'c' and column 'Age' to 56 i.e. |