Hướng dẫn write column csv python - viết cột csv python

Cập nhật các dòng tại chỗ trong một tệp không được hỗ trợ trên hầu hết các hệ thống tệp [một dòng trong một tệp chỉ là một số dữ liệu kết thúc bằng Newline, dòng tiếp theo bắt đầu ngay sau đó].

Nội dung chính

  • Không có chức năng trực tiếp trong Python để thêm một cột trong tệp CSV. Mặc dù trong Python, chúng tôi có một mô -đun CSV cung cấp các lớp khác nhau để đọc và viết các tệp CSV. hoặc nối các cột trong tệp CSV. Hãy để xem cách làm điều đó,
  • Nó nối thêm cột trong nội dung của Input.csv và lưu các thay đổi dưới dạng tệp output_1.csv. Nội dung của tệp Output_1.csv là,
  • Thêm một cột có cùng giá trị vào tệp CSV hiện có bằng Chức năng chung & Lambda
  • Thêm một cột vào tệp CSV hiện có, dựa trên các giá trị từ các cột khác
  • Thêm danh sách làm cột vào tệp CSV hiện có
  • Chèn một cột là cột thứ hai có cùng giá trị vào CSV hiện có
  • Thêm một cột có cùng giá trị vào tệp CSV hiện có với tiêu đề
  • Sử dụng DicTreader Dictwriter để thêm một cột trong tệp CSV hiện có
  • Sử dụng DicTreader Dictwriter để thêm một cột có cùng giá trị vào CSV hiện có
  • Sử dụng DicTreader Dictwriter để chèn một cột làm cột thứ hai trong CSV CSV
  • Làm cách nào để tạo các cột thành tệp CSV?
  • Làm thế nào để bạn thêm các cột trong CSV bằng gấu trúc?
  • Làm thế nào để bạn viết các giá trị trong một tệp CSV trong Python?
  • Bạn có thể viết trực tiếp vào tệp CSV trong Python không?

Như tôi thấy, bạn có hai tùy chọn:

  1. Có các vòng lặp tạo dữ liệu của bạn là trình tạo, bằng cách này chúng sẽ không tiêu thụ nhiều bộ nhớ - bạn sẽ nhận được dữ liệu cho mỗi hàng "chỉ trong thời gian"
  2. Sử dụng cơ sở dữ liệu [sqlite?] Và cập nhật các hàng ở đó. Khi bạn hoàn thành - Xuất sang CSV

Ví dụ nhỏ cho phương pháp đầu tiên:

from itertools import islice, izip, count
print list[islice[izip[count[1], count[2], count[3]], 10]]

Điều này sẽ in

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]

mặc dù

21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
24,Ritika,Python,Delhi,Evening
25,Shaun,Python,Colombo,Morning
4 tạo ra một chuỗi số vô hạn

Trong Python, bạn có thể sử dụng hàm Writerows [] của Writer [] để ghi nhiều hàng vào tệp CSV trên cùng một lần. csv.reader and csv.DictWriter classes. A part from appending the columns we will also discuss how to insert columns in between other columns of the existing CSV file. csv.reader and csv.DictWriter classes. A part from appending the columns we will also discuss how to insert columns in between other columns of the existing CSV file.

Trong bài viết này, chúng tôi sẽ thảo luận về cách thêm một cột vào tệp CSV hiện có bằng các lớp CSV.Reader và CSV.DictWriter. Một phần từ việc thêm các cột, chúng tôi cũng sẽ thảo luận về cách chèn các cột ở giữa các cột khác của tệp CSV hiện có.we have a csv module that provides different classes for reading and writing csv files. All the reading and writing operations provided by these classes are row specific. But we can build our logic on top of these functions to add or append columns in a csv file. Let’s see how to do that,we have a csv module that provides different classes for reading and writing csv files. All the reading and writing operations provided by these classes are row specific. But we can build our logic on top of these functions to add or append columns in a csv file. Let’s see how to do that,

Không có chức năng trực tiếp trong Python để thêm một cột trong tệp CSV. Mặc dù trong Python, chúng tôi có một mô -đun CSV cung cấp các lớp khác nhau để đọc và viết các tệp CSV. hoặc nối các cột trong tệp CSV. Hãy để xem cách làm điều đó,

Thêm một cột có cùng giá trị vào tệp CSV hiện cóinput.csv and its contents are,input.csv and its contents are,

21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
24,Ritika,Python,Delhi,Evening
25,Shaun,Python,Colombo,Morning

Giả sử chúng ta có một tệp CSV, tức là input.csv và nội dung của nó là,‘Some Text‘.‘Some Text‘.

Bây giờ chúng tôi muốn thêm một cột trong tệp CSV này và tất cả các mục trong cột này sẽ chứa cùng một giá trị, tức là một số văn bản.

Hãy để xem cách làm điều đó,Whereas, csv.writer class in python’s csv module provides a mechanism to write a list as a row in the csv file.Whereas, csv.writer class in python’s csv module provides a mechanism to write a list as a row in the csv file.

Lớp CSV.Reader trong mô -đun CSV của Python cung cấp một cơ chế để đọc từng hàng trong tệp CSV dưới dạng danh sách.

Quảng cáo

  • Các bước sẽ được nối một cột trong tệp CSV,
  • Mở tệp ‘input.csv ở chế độ đọc và tạo đối tượng CSV.Reader cho tệp CSV này
  • Mở tệp ’unput.csv ở chế độ ghi và tạo đối tượng CSV.Writer cho tệp CSV này
    • Sử dụng đối tượng Reader, hãy đọc dòng tệp ‘Input.csv, từng dòng
    • Đối với mỗi hàng [đọc dưới dạng danh sách], hãy nối văn bản mặc định trong danh sách.
  • Viết danh sách cập nhật / hàng & nbsp này; Trong ‘allput.csv, bằng cách sử dụng đối tượng CSV.Writer cho tệp này.

Đóng cả tệp input.csv và đầu ra.csv.

from csv import writer
from csv import reader

default_text = 'Some Text'
# Open the input_file in read mode and output_file in write mode
with open['input.csv', 'r'] as read_obj, \
        open['output_1.csv', 'w', newline=''] as write_obj:
    # Create a csv.reader object from the input file object
    csv_reader = reader[read_obj]
    # Create a csv.writer object from the output file object
    csv_writer = writer[write_obj]
    # Read each row of the input csv file as list
    for row in csv_reader:
        # Append the default text in the row / list
        row.append[default_text]
        # Add the updated row / list to the output file
        csv_writer.writerow[row]

Mã như sau,Contents of output_1.csv file are,Contents of output_1.csv file are,

21,Mark,Python,London,Morning,Some Text
22,John,Python,Tokyo,Evening,Some Text
23,Sam,Python,Paris,Morning,Some Text
24,Ritika,Python,Delhi,Evening,Some Text
25,Shaun,Python,Colombo,Morning,Some Text

Nó nối thêm cột trong nội dung của Input.csv và lưu các thay đổi dưới dạng tệp output_1.csv. Nội dung của tệp Output_1.csv là,

Thêm cột trong CSV dựa trên logic tùy chỉnh

  • Trong ví dụ trên, chúng tôi đã thêm một cột có cùng một giá trị trong tệp CSV. Nhưng có thể có các kịch bản khác, như,
  • Cách thêm cột trong tệp CSV dựa trên một số logic khác, & nbsp; trong đó mỗi giá trị trong cột là & nbsp; khác nhau ?
  • Làm thế nào để thêm danh sách dưới dạng cột trong tệp CSV?
  • Làm thế nào để thêm cột trong tệp CSV với tiêu đề?

Cách chèn các cột ở giữa các cột khác của tệp CSV.

Chúng tôi có thể thay đổi mã nhỏ trong ví dụ trên, cho mỗi kịch bản của chúng tôi nhưng điều đó sẽ là quá nhiều sao chép mã.

from csv import writer
from csv import reader

def add_column_in_csv[input_file, output_file, transform_row]:
    """ Append a column in existing csv using csv.reader / csv.writer classes"""
    # Open the input_file in read mode and output_file in write mode
    with open[input_file, 'r'] as read_obj, \
            open[output_file, 'w', newline=''] as write_obj:
        # Create a csv.reader object from the input file object
        csv_reader = reader[read_obj]
        # Create a csv.writer object from the output file object
        csv_writer = writer[write_obj]
        # Read each row of the input csv file as list
        for row in csv_reader:
            # Pass the list / row in the transform function to add column text for this row
            transform_row[row, csv_reader.line_num]
            # Write the updated row / list to the output file
            csv_writer.writerow[row]

Vì vậy, hãy tạo một hàm chung sẽ thực hiện phần phổ biến nhất để thêm một cột trong tệp CSV, tức là.

  • Hàm này có 3 đối số,input_file: file path / name of the input csv file, it will read the contents of this csv fileinput_file: file path / name of the input csv file, it will read the contents of this csv file
  • & nbsp; & nbsp; & nbsp; & nbsp;output_file: file path / name of the output csv file, it will write modified contents in this csv fileoutput_file: file path / name of the output csv file, it will write modified contents in this csv file
  • & nbsp; & nbsp; & nbsp; & nbsp; output_file: đường dẫn / tên của tệp CSV đầu ra, nó sẽ viết nội dung sửa đổi trong tệp CSV nàytransform_row: A callback function, that receives a list and modifies that listtransform_row: A callback function, that receives a list and modifies that list

& nbsp; & nbsp; & nbsp; & nbsp; transform_row: một chức năng gọi lại, nhận danh sách và sửa đổi danh sách đóthat list into a transform_row[] function for modification. In side this callback we can modify the list like add an entry in it. Then it saves the modified row / list in the output_file.that list into a transform_row[] function for modification. In side this callback we can modify the list like add an entry in it. Then it saves the modified row / list in the output_file.

Trong đối số Transform_row của hàm này, chúng tôi sẽ chủ yếu vượt qua chức năng Lambda trong các ví dụ của chúng tôi.

Vì vậy, hãy để sử dụng chức năng này để giải quyết các vấn đề của chúng tôi,

Thêm một cột có cùng giá trị vào tệp CSV hiện có bằng Chức năng chung & Lambda

Chúng tôi đã làm tương tự trong ví dụ đầu tiên của chúng tôi, nhưng hãy để Lừa làm lại bằng cách sử dụng chức năng chung của chúng tôi và một lambda, tức là.

default_text = 'Some Text'

# Add column with same text in all rows
add_column_in_csv['input.csv', 'output_2.csv', lambda row, line_num: row.append[default_text]]

Nó nối thêm cột trong nội dung của Input.csv và lưu các thay đổi dưới dạng tệp output_2.csv. Nội dung của tệp Output_2.csv là,input.csv and saved the changes as output_2.csv file. Contents of output_2.csv file are,input.csv and saved the changes as output_2.csv file. Contents of output_2.csv file are,

21,Mark,Python,London,Morning,Some Text
22,John,Python,Tokyo,Evening,Some Text
23,Sam,Python,Paris,Morning,Some Text
24,Ritika,Python,Delhi,Evening,Some Text
25,Shaun,Python,Colombo,Morning,Some Text

Thêm một cột vào tệp CSV hiện có, dựa trên các giá trị từ các cột khác

Hãy để nối một cột trong tệp input.csv bằng cách hợp nhất giá trị của các cột thứ nhất và thứ hai, tức là.

# Add column to csv by merging contents from first & second column of csv
add_column_in_csv['input.csv', 'output_3.csv', lambda row, line_num: row.append[row[0] + '__' + row[1]]]

Trong hàm Lambda, chúng tôi đã nhận được từng hàng dưới dạng danh sách và số dòng. Sau đó, nó đã thêm một giá trị trong danh sách và giá trị là sự hợp nhất của giá trị thứ nhất và thứ hai của danh sách.

Nó đã thêm cột trong nội dung của Input.csv bằng cách hợp nhất giá trị của cột thứ nhất và thứ hai và sau đó lưu các thay đổi dưới dạng tệp output_3.csv.and then saved the changes as output_3.csv file.and then saved the changes as output_3.csv file.

Nội dung của tệp output_3.csv là,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
0

Thêm danh sách làm cột vào tệp CSV hiện có

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

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
0

Hãy để thêm danh sách các chuỗi này làm cột cuối cùng trong tệp input.csv và lưu nội dung của nó dưới dạng output_4.csv,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
1

Trong hàm Lambda, chúng tôi đã nhận được từng hàng dưới dạng danh sách và số dòng. Sau đó, nó đã thêm một giá trị trong danh sách và giá trị là một mục từ list_of_str của chúng tôi tại index & nbsp; line_num - 1.list_of_str at index  line_num – 1.list_of_str at index  line_num – 1.

Do đó, tất cả các mục trong list_of_strare được thêm vào làm cột trong CSV.list_of_strare added as a column in the csv.list_of_strare added as a column in the csv.

Nội dung của tệp output_4.csv là,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
2

Chèn một cột là cột thứ hai có cùng giá trị vào CSV hiện có

Trong tất cả các ví dụ trên, chúng tôi đã thêm một cột ở cuối tệp CSV, tức là cột cuối cùng. Điều gì sẽ xảy ra nếu chúng ta muốn chèn một cột & nbsp; giữa các cột khác của tệp CSV? Hãy để xem cách làm điều đó,column in between other columns of the csv file ? Let’s see how to do that,column in between other columns of the csv file ? Let’s see how to do that,

Chèn một cột vào tệp input.csv làm cột thứ hai và lưu nội dung của nó vào tệp output_5.csv,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
3

Nội dung của tệp Output_5.csv là,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
4

Trong hàm Lambda, chúng tôi đã nhận được từng hàng dưới dạng danh sách và số dòng. Sau đó, nó chèn giá trị ở vị trí cuối danh sách.

Thêm một cột có cùng giá trị vào tệp CSV hiện có với tiêu đề

Trong tất cả các ví dụ trên, chúng tôi đã thêm cột trong một tệp CSV mà không có tiêu đề nào. Nếu tệp CSV của chúng tôi cũng có tiêu đề, & nbsp;If our csv file has a header too, If our csv file has a header too, 

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
5

Sau đó, hãy để xem cách thêm một cột mới với tiêu đề và giá trị, tức là.

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
6

Trong hàm Lambda, nó nhận được hàng dưới dạng danh sách và số dòng của nó dưới dạng đối số. Sau đó kiểm tra xem line_num là 1, thì nó có nghĩa là danh sách này chứa tên cột và nó thêm tên của cột trong đó. Trong khi đó, nếu line_num không phải là 1 thì nó có nghĩa là một hàng tệp CSV bình thường của nó, nếu thêm mục nhập của cột mới trong đó.line_num is 1, then it means this list contains column names and it adds the name of column in it. Whereas, if line_num is not 1 then it means its a normal row of csv file, if adds the entry of new column in it.line_num is 1, then it means this list contains column names and it adds the name of column in it. Whereas, if line_num is not 1 then it means its a normal row of csv file, if adds the entry of new column in it.

Vì vậy, nó đã thêm một cột mới với các giá trị ‘giống nhau_text và tiêu đề‘ địa chỉ. Sau đó lưu nội dung đó dưới dạng output_6.csv,

Nội dung của tệp output_6.csv là,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
7

Sử dụng DicTreader Dictwriter để thêm một cột trong tệp CSV hiện có

Mô -đun CSV của Python cung cấp hai lớp khác để đọc và viết nội dung trong tệp CSV, tức là DicTreader & Dictwriter. & NBSP; Nó thực hiện tất cả các hoạt động bằng cách sử dụng từ điển thay vì danh sách.It performs all the operations using dictionaries instead of lists.It performs all the operations using dictionaries instead of lists.

Chúng tôi đã tạo một chức năng riêng biệt để thêm cột vào tệp CSV, tương tự như trước đó nhưng nó sử dụng lớp dictreader & nbsp; & nbsp; và dictwriter thay thế, thay vào đó, thay vào đó and DictWriter class instead, and DictWriter class instead,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
8

Trong chức năng này, chúng ta cần vượt qua một cuộc gọi lại bổ sung tansform_column_names, nó nhận được danh sách các tên cột và & nbsp; chúng ta có thể sửa đổi nó dựa trên ý định của chúng ta.we can modify that based on our intent.we can modify that based on our intent.

Hãy để xem cách sử dụng chức năng này để giải quyết các vấn đề của chúng tôi,

Sử dụng DicTreader Dictwriter để thêm một cột có cùng giá trị vào CSV hiện có

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
9

Nội dung của tệp output_7.csv là,

[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10], [9, 10, 11], [10, 11, 12]]
7

Sử dụng DicTreader Dictwriter để chèn một cột làm cột thứ hai trong CSV CSV

21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
24,Ritika,Python,Delhi,Evening
25,Shaun,Python,Colombo,Morning
1

Nội dung của tệp output_7.csv là,

21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
24,Ritika,Python,Delhi,Evening
25,Shaun,Python,Colombo,Morning
2

Sử dụng DicTreader Dictwriter để chèn một cột làm cột thứ hai trong CSV CSV

21,Mark,Python,London,Morning
22,John,Python,Tokyo,Evening
23,Sam,Python,Paris,Morning
24,Ritika,Python,Delhi,Evening
25,Shaun,Python,Colombo,Morning
3

Làm cách nào để tạo các cột thành tệp CSV?

Lập danh sách các cột phải được trích xuất ..

Sử dụng phương thức read_csv [] để trích xuất tệp CSV vào khung dữ liệu ..

In dữ liệu bị xáo trộn ..

Biểu đồ khung dữ liệu bằng phương thức Plot [] ..

Để hiển thị hình, sử dụng phương thức show [] ..

Làm thế nào để bạn thêm các cột trong CSV bằng gấu trúc?

Hãy thêm một tên cột mới "Bộ phận" vào tệp CSV "AA" hiện có bằng phương thức chèn ....

Nhập Gandas dưới dạng PD ..

aa = pd.read_csv ["aa.csv"].

aa.insert [2, cột = "bộ phận", value = "b.sc"].

aa.head[].

Làm thế nào để bạn viết các giá trị trong một tệp CSV trong Python?

Python viết tệp CSV...

Đầu tiên, hãy mở tệp CSV để ghi [chế độ W] bằng cách sử dụng hàm Open [] ..

Thứ hai, tạo đối tượng người viết CSV bằng cách gọi hàm writer [] của mô -đun CSV ..

Thứ ba, ghi dữ liệu vào tệp CSV bằng cách gọi phương thức Writerow [] hoặc Writerows [] của đối tượng người viết CSV ..

Bạn có thể viết trực tiếp vào tệp CSV trong Python không?

Trong Python, bạn có thể sử dụng hàm Writerows [] của Writer [] để ghi nhiều hàng vào tệp CSV trên cùng một lần.use the CSV writer's writerows[] function to write multiple rows into a CSV file on the same go.use the CSV writer's writerows[] function to write multiple rows into a CSV file on the same go.

Bài Viết Liên Quan

Chủ Đề