Thêm hàng trống trong csv python

Pandas là một công cụ đặc biệt cho phép chúng tôi thực hiện các thao tác dữ liệu phức tạp một cách hiệu quả và hiệu quả. Bên trong gấu trúc, chúng tôi chủ yếu xử lý tập dữ liệu ở dạng DataFrame. DataFrames là cấu trúc dữ liệu 2 chiều trong gấu trúc. DataFrames bao gồm các hàng, cột và dữ liệu

Nối thêm một hàng trống trong pandas dataframe

Trước tiên, chúng tôi sẽ tạo một DataFrame và sau đó chúng tôi sẽ thêm một hàng trống bằng cách sử dụng phương thức concat[] hoặc phương thức append[], bên trong phương thức này, chúng tôi sẽ chuyển một Sê-ri trống sao cho nó không chứa bất kỳ giá trị nào

Việc thêm một chuỗi sẽ thêm 1 giá trị null vào mỗi cột và do đó, cuối cùng chúng ta sẽ thêm một hàng bổ sung có giá trị null

Các hàng trong gấu trúc là các giá trị ô [cột] khác nhau được căn chỉnh theo chiều ngang và cũng mang lại sự đồng nhất. Mỗi hàng có thể có giá trị giống nhau hoặc khác nhau. Các hàng thường được đánh dấu bằng số chỉ mục nhưng trong gấu trúc, chúng ta cũng có thể gán tên chỉ mục theo nhu cầu. Trong pandas, chúng ta có thể tạo, đọc, cập nhật và xóa một giá trị cột hoặc hàng

Có thể có nhiều cách trong python, để nối thêm một hàng mới vào cuối tệp csv này. Nhưng ở đây chúng ta sẽ thảo luận về hai cách hiệu quả khi sử dụng mô-đun csv

Python cung cấp một mô-đun csv để đọc và ghi các tệp csv. Để ghi tệp csv, nó có hai lớp khác nhau tôi. e. nhà văn và DictWritter

quảng cáo

Chúng tôi có thể nối thêm một dòng mới trong csv bằng cách sử dụng một trong số chúng. Nhưng chúng là một số tình huống làm cho một giải pháp tốt hơn các giải pháp khác. Vì vậy, hãy thảo luận về cả hai từng cái một,

Nối danh sách dưới dạng hàng mới vào tệp csv cũ bằng csv. nhà văn[]

mô-đun csv cung cấp trình ghi lớp, có thể ghi danh sách vào tệp csv dưới dạng hàng. Hãy xem cách sử dụng nó để nối thêm một hàng mới trong csv,

Giả sử chúng ta có một danh sách các chuỗi,

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']

Để thêm nội dung của danh sách này dưới dạng một hàng mới trong tệp csv, chúng ta cần làm theo các bước sau,

  • Nhập lớp người viết của mô-đun csv,
  • Mở tệp csv của chúng tôi ở chế độ chắp thêm và tạo một đối tượng tệp
  • Truyền đối tượng tệp này cho csv. nhà văn [], chúng ta có thể lấy một đối tượng lớp nhà văn
  • Đối tượng nhà văn này có một hàm writerow[] , chuyển danh sách cho nó và nó sẽ thêm nội dung của danh sách dưới dạng một hàng mới trong tệp csv được liên kết
  • Khi hàng mới được thêm vào tệp csv, bây giờ hãy đóng đối tượng tệp

Các bước trên sẽ nối thêm danh sách dưới dạng một hàng trong csv. Để làm cho quá trình đơn giản, chúng tôi đã tạo một chức năng riêng biệt với các bước trên,

from csv import writer

def append_list_as_row[file_name, list_of_elem]:
    # Open file in append mode
    with open[file_name, 'a+', newline=''] as write_obj:
        # Create a writer object from csv module
        csv_writer = writer[write_obj]
        # Add contents of list as last row in the csv file
        csv_writer.writerow[list_of_elem]

Hàm này chấp nhận tên tệp csv và danh sách các phần tử làm đối số. Sau đó, thêm nội dung của danh sách dưới dạng một hàng mới vào cuối tệp csv. Hãy sử dụng chức năng này để nối thêm một hàng trong tệp csv của chúng ta 'sinh viên. csv’,

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']

# Append a list as new line to an old csv file
append_list_as_row['students.csv', row_contents]

Bây giờ nội dung của tập tin 'sinh viên. csv' là,

Id,Name,Course,City,Session
21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
32,Shaun,Java,Tokyo,Morning

Nó đã thêm danh sách dưới dạng hàng trong tệp csv hiện có 'sinh viên. csv'

Nối một hàng vào csv với các mục bị thiếu?

Điều gì xảy ra nếu kích thước của danh sách nhỏ hơn số lượng cột trong tệp csv tôi. e. nếu một số mục bị thiếu trong danh sách?

Kiểm tra ví dụ này,

# A list with missing entries
row_contents = [33, 'Sahil', 'Morning']

# Appending a row to csv with missing entries
append_list_as_row['students.csv', row_contents]

Bây giờ nội dung của học sinh. csv là,

Id,Name,Course,City,Session
21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
32,Shaun,Java,Tokyo,Morning
33,Sahil,Morning

Vì trong danh sách của họ có ít mục hơn nên nó đã nối thêm một hàng mới, nhưng các giá trị đã được thêm vào sai cột như 'Buổi sáng' đã được thêm vào cột 'Khóa học'

lớp trình soạn thảo của csv không có chức năng kiểm tra xem có bất kỳ giá trị cột trung gian nào bị thiếu trong danh sách hoặc liệu chúng có theo đúng thứ tự hay không. Nó sẽ chỉ thêm các mục trong danh sách dưới dạng giá trị cột của hàng cuối cùng theo thứ tự tuần tự.

Do đó, trong khi thêm danh sách dưới dạng hàng bằng csv. nhà văn [] chúng tôi cần đảm bảo rằng tất cả các yếu tố được cung cấp và theo đúng thứ tự

Nếu bất kỳ phần tử nào bị thiếu như trong ví dụ trên, thì chúng ta nên chuyển các chuỗi rỗng vào danh sách như thế này,

row_contents = [33, 'Sahil', '' , '', 'Morning']

Nhưng nếu chúng ta có một số lượng lớn các cột trong tệp csv của mình và hầu hết chúng đều trống thì việc tạo các mục trống cho từng cột sẽ là một nhiệm vụ bận rộn. Để cứu chúng ta khỏi công việc bận rộn này, mô-đun csv cung cấp một lớp DictWriter khác. Hãy xem làm thế nào chúng ta có thể sử dụng nó.

Nối từ điển dưới dạng một hàng vào tệp csv hiện có bằng DictWriter trong python

mô-đun csv cung cấp một lớp DictWriter, có thể ghi từ điển vào tệp csv dưới dạng hàng. Hãy xem cách sử dụng nó để nối thêm một hàng mới trong csv,

Giả sử chúng ta có một cuốn từ điển,

{'Id': 81,'Name': 'Sachin','Course':'Maths','City':'Mumbai','Session':'Evening'}

Các khóa trong từ điển này khớp với tên cột trong tệp csv. Để thêm nội dung của từ điển này dưới dạng một hàng mới trong tệp csv, chúng ta cần làm theo các bước sau,

  • nhập lớp DictWriter của mô-đun csv,
  • Mở tệp csv của chúng tôi ở chế độ chắp thêm và tạo một đối tượng tệp,
  • Truyền đối tượng tệp & danh sách tên cột csv cho csv. DictWriter[], chúng ta có thể lấy một đối tượng lớp DictWriter
  • Đối tượng DictWriter này có hàm writerow[] chấp nhận từ điển. chuyển từ điển của chúng ta tới chức năng này, nó sẽ thêm chúng dưới dạng một hàng mới trong tệp csv được liên kết,
  • Khi dòng mới được thêm vào tệp csv, bây giờ hãy đóng đối tượng tệp,

Các bước trên sẽ nối thêm từ điển của chúng tôi dưới dạng một hàng mới trong csv. Để làm cho cuộc sống của chúng tôi dễ dàng hơn, chúng tôi đã tạo một chức năng riêng biệt thực hiện các bước trên,

________số 8_______

Hàm này chấp nhận 3 đối số i. e. tên tệp csv, từ điển các phần tử và tên trường. Sau đó nối thêm nội dung của từ điển dưới dạng một hàng mới vào cuối tệp csv

Hãy xem xét một ví dụ,

Nội dung của tệp csv 'sinh viên. csv' là,

Id,Name,Course,City,Session
21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
32,Shaun,Java,Tokyo,Morning

Sử dụng chức năng đã tạo ở trên để thêm một từ điển dưới dạng một hàng trong tệp csv của chúng tôi 'sinh viên. csv',

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']
1

Bây giờ nội dung của tập tin 'sinh viên. csv' là,

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']
2

Nó đã thêm hàng thành công. Nhưng nếu hàng của chúng tôi có các mục bị thiếu thì sao?

Nối một từ điển dưới dạng một hàng vào csv với các mục bị thiếu?

Nếu có các mục bị thiếu trong từ điển của chúng tôi hoặc thậm chí các mục theo thứ tự khác nhau, thì trong cả hai trường hợp, lớp DictWriter sẽ tự động xử lý mục đó và sẽ chỉ thêm các cột đã cho vào hàng mới. Cột thiếu mục nhập sẽ trống.

Kiểm tra ví dụ này,

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']
3

Bây giờ nội dung của học sinh. csv là,

# List of strings
row_contents = [32,'Shaun','Java','Tokyo','Morning']
4

Như trong từ điển, chúng chỉ là các giá trị cho các khóa 'Id', 'Name' & 'Session'. Vì vậy, DictWriter đã thêm một hàng chỉ với các cột này và hàng đó cũng ở đúng vị trí

Chủ Đề