82 Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Learn more.
Tôi có một số tệp CSV trông như thế này: Input
Name Code
blackberry 1
wineberry 2
rasberry 1
blueberry 1
mulberry 2
Tôi muốn thêm một cột mới vào tất cả các tệp CSV để nó trông như thế này: Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
Kịch bản tôi có cho đến nay là: import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
(Python 3.2) Nhưng ở đầu ra, tập lệnh bỏ qua mọi dòng và cột mới chỉ có berry trong đó: Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
Martineau Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges hỏi ngày 17 tháng 6 năm 2012 lúc 10:10Jun 17, 2012 at 10:10 4 Điều này sẽ cho bạn một ý tưởng về những việc cần làm: >>> v = open('C:/test/test.csv')
>>> r = csv.reader(v)
>>> row0 = r.next()
>>> row0.append('berry')
>>> print row0
['Name', 'Code', 'berry']
>>> for item in r:
... item.append(item[0])
... print item
...
['blackberry', '1', 'blackberry']
['wineberry', '2', 'wineberry']
['rasberry', '1', 'rasberry']
['blueberry', '1', 'blueberry']
['mulberry', '2', 'mulberry']
>>>
Chỉnh sửa, lưu ý trong py3k bạn phải sử dụng import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
4Cảm ơn vì đã chấp nhận câu trả lời. Ở đây bạn có một phần thưởng (tập lệnh làm việc của bạn): import csv
with open('C:/test/test.csv','r') as csvinput:
with open('C:/test/output.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
row = next(reader)
row.append('Berry')
all.append(row)
for row in reader:
row.append(row[0])
all.append(row)
writer.writerows(all)
Xin lưu ý - tham số
import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
5 trong import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
6. Theo mặc định, nó được đặt thành import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
7 và đây là lý do tại sao bạn có khoảng cách gấp đôi. - Việc sử dụng một danh sách để nối tất cả các dòng và viết chúng vào một phát bằng
import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
8. Nếu tệp của bạn rất, rất lớn thì đây có lẽ không phải là một ý tưởng tốt (RAM) nhưng đối với các tệp bình thường, tôi nghĩ nó nhanh hơn vì có ít I/O hơn. Như đã nêu trong các bình luận cho bài đăng này, lưu ý rằng thay vì làm tổ hai câu import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
9, bạn có thể làm điều đó trong cùng một dòng:với Open ('C: /test/test.csv', 'r') dưới dạng csvinput, open ('c: /test/output.csv', 'w') như csvoutput:
Đã trả lời ngày 17 tháng 6 năm 2012 lúc 10:32Jun 17, 2012 at 10:32
Joaquinjoaquinjoaquin 79,9K28 Huy hiệu vàng137 Huy hiệu bạc151 Huy hiệu đồng28 gold badges137 silver badges151 bronze badges 6 Tôi ngạc nhiên không ai đề nghị gấu trúc. Mặc dù sử dụng một tập hợp các phụ thuộc như gấu trúc có vẻ nặng tay hơn là cần thiết cho một nhiệm vụ dễ dàng như vậy, nó tạo ra một kịch bản rất ngắn và gấu trúc là một thư viện tuyệt vời để thực hiện tất cả các loại CSV (và thực sự tất cả các loại dữ liệu) . Không thể tranh luận với 4 dòng mã: import pandas as pd
csv_input = pd.read_csv('input.csv')
csv_input['Berries'] = csv_input['Name']
csv_input.to_csv('output.csv', index=False)
Kiểm tra trang web của Pandas để biết thêm thông tin! Nội dung của Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
0:Name,Code,Berries
blackberry,1,blackberry
wineberry,2,wineberry
rasberry,1,rasberry
blueberry,1,blueberry
mulberry,2,mulberry
Đã trả lời ngày 27 tháng 12 năm 2015 lúc 23:26Dec 27, 2015 at 23:26 Blairg23Blairg23Blairg23 10,5K6 Huy hiệu vàng70 Huy hiệu bạc70 Huy hiệu đồng6 gold badges70 silver badges70 bronze badges 13 import csv
with open('input.csv','r') as csvinput:
with open('output.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
if row[0] == "Name":
writer.writerow(row+["Berry"])
else:
writer.writerow(row+[row[0]])
Có lẽ một cái gì đó như thế là những gì bạn dự định? Ngoài ra, CSV là viết tắt của các giá trị phân tách bằng dấu phẩy. Vì vậy, bạn cần phải phân tách các giá trị của bạn như thế này: Name,Code
blackberry,1
wineberry,2
rasberry,1
blueberry,1
mulberry,2
Đã trả lời ngày 17 tháng 6 năm 2012 lúc 10:25Jun 17, 2012 at 10:25 JGRITTYJGRITTYjgritty 11.4K3 Huy hiệu vàng37 Huy hiệu bạc59 Huy hiệu đồng3 gold badges37 silver badges59 bronze badges 2 Tôi đã sử dụng gấu trúc và nó hoạt động tốt ... Trong khi tôi đang sử dụng nó, tôi phải mở một tệp và thêm một số cột ngẫu nhiên vào nó và sau đó chỉ lưu lại vào cùng một tệp. Mã này thêm nhiều mục nhập cột, bạn có thể chỉnh sửa càng nhiều bạn cần. Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
0Nếu bạn muốn giá trị ô đó không được sao chép, vì vậy trước hết, hãy tạo một cột trống trong tệp CSV của bạn theo cách thủ công, giống như bạn đã đặt tên là giờ sau đó, bây giờ cho điều này, bạn có thể thêm dòng này vào mã trên,Hours then, Now for this you can add this line in above code, Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
1hoặc đơn giản là chúng ta có thể, mà không cần thêm cột thủ công, chúng ta có thể Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
2Tôi hy vọng nó sẽ giúp. Đã trả lời ngày 12 tháng 9 năm 2017 lúc 5:53Sep 12, 2017 at 5:53 Enigmaenigmaenigma 8739 Huy hiệu bạc10 Huy hiệu Đồng9 silver badges10 bronze badges Vâng, đó là một câu hỏi cũ nhưng nó có thể giúp một số Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
3 Đã trả lời ngày 6 tháng 2 năm 2019 lúc 7:50Feb 6, 2019 at 7:50 Tpk43Tpk43Tpk43 3371 Huy hiệu vàng4 Huy hiệu bạc19 Huy hiệu đồng1 gold badge4 silver badges19 bronze badges
3 Tôi không thấy nơi bạn đang thêm cột mới, nhưng hãy thử điều này: Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
4 Đã trả lời ngày 17 tháng 6 năm 2012 lúc 10:36Jun 17, 2012 at
10:36 Manicphasemanicphasemanicphase 6186 Huy hiệu bạc9 Huy hiệu Đồng6 silver badges9 bronze badges 0 Mã này sẽ đủ yêu cầu của bạn và tôi đã kiểm tra mã mẫu. Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
5 Đã trả lời ngày 19 tháng 4 năm 2018 lúc 4:36Apr 19, 2018 at 4:36 AshwaqashwaqAshwaq 4016 Huy hiệu bạc16 Huy hiệu Đồng6 silver badges16 bronze badges Trong trường hợp một tệp lớn, bạn có thể sử dụng Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
1 với đối số Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
2 cho phép đọc bộ dữ liệu trên mỗi đoạn:Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
6Nếu bạn muốn cập nhật tệp tại chỗ, bạn có thể sử dụng một tệp tạm thời và xóa nó ở cuối Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
7 Đã trả lời ngày 2 tháng 9 năm 2020 lúc 18:49Sep 2, 2020 at 18:49 Để thêm một cột mới vào tệp CSV hiện có (có tiêu đề), nếu cột được thêm có đủ số giá trị nhỏ, thì đây là hàm thuận tiện (phần tương tự như giải pháp của @joaquin). Chức năng lấy - Tên tệp CSV hiện có
- Tên tệp CSV đầu ra (sẽ có nội dung được cập nhật) và
- Liệt kê với tên tiêu đề & giá trị cột
Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
8Example: Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
9Tệp CSV hiện có: Đầu ra (cập nhật) tệp CSV: Đã trả lời ngày 5 tháng 11 năm 2020 lúc 20:59Nov 5, 2020 at 20:59 Phụ lục cột mới trong tệp CSV hiện có bằng Python không có tên tiêu đề import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
0Cảm ơn bạn Đã trả lời ngày 24 tháng 7 năm 2020 lúc 11:31Jul 24, 2020 at 11:31 Bạn có thể viết: import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
1Sau đó, bạn đã hoàn thành. Để kiểm tra nó, bạn có thể chạy: import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
2Nếu bạn muốn thêm một cột với một số phần tử mới tùy ý (A, B, C), bạn có thể thay thế dòng thứ 4 của mã bằng cách: import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
3 Đã trả lời ngày 3 tháng 5 lúc 15:51May 3 at 15:51
Làm cách nào để thêm một cột vào tệp CSV trong Python?
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 cách nào để tạo một cột trong tệp CSV?
Làm cách nào để đặt văn bản vào các cột riêng biệt trong tệp CSV trong ..... Chọn cột đầu tiên (cột A). Nhấp vào 'Dữ liệu' và sau đó trên 'Văn bản vào các cột'. Tùy chọn 'phân định' đã được chọn trước. Đây là tùy chọn chính xác. Nhấp vào 'Tiếp theo' .. Chọn tùy chọn 'Dấu phẩy' và nhấp vào 'Kết thúc' ..
Làm cách nào để nối một cột vào tệp CSV hiện có?
Mở tệp CSV của bạn trong chế độ phụ lục Tạo đối tượng tệp cho tệp này.Chuyển đối tượng tệp và danh sách các tên cột cho DictWriter () bạn sẽ nhận được một đối tượng của DictWriter.Truyền từ điển làm đối số cho hàm writerow () của dictWriter (nó sẽ thêm một hàng mới vào tệp CSV).
Làm cách nào để thêm một cột vào một bảng trong Python?
Các bước để thêm cột mới vào bảng bằng MySQL trong Python.. Nhập trình kết nối MySQL .. Thiết lập kết nối với đầu nối bằng kết nối (). Tạo đối tượng con trỏ bằng phương thức con trỏ () .. Tạo một truy vấn bằng cách sử dụng các câu lệnh MySQL thích hợp .. Thực thi truy vấn SQL bằng phương thức Execute () .. Đóng kết nối .. |