Hôm nay, cách thêm tiêu đề vào tệp csv bằng python là chủ đề chính của chúng tôi. Bài đăng này sẽ cung cấp cho bạn một ví dụ đơn giản về cách tạo tệp csv với tên cột python. bạn sẽ học python thêm tiêu đề vào tệp csv. Nếu bạn có câu hỏi về python, hãy thêm tiêu đề vào csv nếu không tồn tại thì tôi sẽ đưa ra một ví dụ đơn giản kèm theo giải pháp
Trong ví dụ này, chúng tôi sẽ tạo demo. tệp csv có ID, Tên và Email làm trường tiêu đề. chúng tôi sẽ tạo danh sách "dữ liệu" với các giá trị để ghi nhiều hàng vào tệp csv. chúng ta sẽ sử dụng các hàm open[], writer[], writerow[], writerows[] và close[] để tạo tệp csv từ danh sách
Mọi đường dẫn chuỗi hợp lệ đều được chấp nhận. Chuỗi có thể là một URL. Lược đồ URL hợp lệ bao gồm http, ftp, s3, gs và tệp. Đối với các URL của tệp, một máy chủ lưu trữ được yêu cầu. Một tệp cục bộ có thể là. tập tin. // localhost/đường dẫn/đến/bảng. csv
Nếu bạn muốn truyền vào một đối tượng đường dẫn, gấu trúc chấp nhận bất kỳ os.PathLike
nào
Theo đối tượng giống như tệp, chúng tôi đề cập đến các đối tượng có phương thức read[]
, chẳng hạn như xử lý tệp [e. g. thông qua chức năng _______________ tích hợp] hoặc _______________
Dấu phân cách để sử dụng. Nếu sep là Không, thì công cụ C không thể tự động phát hiện dấu phân cách, nhưng công cụ phân tích cú pháp Python thì có thể, nghĩa là công cụ sau sẽ được sử dụng và tự động phát hiện dấu phân cách bằng công cụ trình thám thính dựng sẵn của Python, csv.Sniffer
. Ngoài ra, dấu phân cách dài hơn 1 ký tự và khác với '\s+'
sẽ được hiểu là biểu thức chính quy và cũng sẽ buộc sử dụng công cụ phân tích cú pháp Python. Lưu ý rằng các dấu phân cách regex có xu hướng bỏ qua dữ liệu được trích dẫn. Ví dụ về biểu thức chính quy. '\r\t'
None
Bí danh cho sep
tiêu đề int, danh sách int, Không, mặc định 'suy ra'[Các] số hàng để sử dụng làm tên cột và bắt đầu dữ liệu. Hành vi mặc định là suy ra tên cột. nếu không có tên nào được chuyển thì hành vi giống hệt với header=0
và tên cột được suy ra từ dòng đầu tiên của tệp, nếu tên cột được chuyển rõ ràng thì hành vi giống hệt với os.PathLike
0. Hoàn toàn vượt qua header=0
để có thể thay thế các tên hiện có. Tiêu đề có thể là danh sách các số nguyên xác định vị trí hàng cho đa chỉ mục trên các cột e. g. [0,1,3]. Các hàng xen kẽ không được chỉ định sẽ bị bỏ qua [e. g. 2 trong ví dụ này bị bỏ qua]. Lưu ý rằng tham số này bỏ qua các dòng nhận xét và dòng trống nếu os.PathLike
2, do đó, header=0
biểu thị dòng dữ liệu đầu tiên thay vì dòng đầu tiên của tệp
Danh sách các tên cột để sử dụng. Nếu tệp chứa hàng tiêu đề, thì bạn nên chuyển rõ ràng header=0
để ghi đè tên cột. Bản sao trong danh sách này không được phép
None
[Các] cột để sử dụng làm nhãn hàng của os.PathLike
6, được cung cấp dưới dạng tên chuỗi hoặc chỉ mục cột. Nếu một chuỗi int / str được đưa ra, Multi Index được sử dụng
Ghi chú. os.PathLike
7 có thể được sử dụng để buộc gấu trúc không sử dụng cột đầu tiên làm chỉ mục, e. g. khi bạn có tệp không đúng định dạng với dấu phân cách ở cuối mỗi dòng
Trả về một tập hợp con của các cột. Nếu giống như danh sách, tất cả các phần tử phải là vị trí [i. e. chỉ số nguyên vào cột tài liệu] hoặc chuỗi tương ứng với tên cột do người dùng cung cấp trong tên hoặc được suy ra từ [các] hàng tiêu đề tài liệu. Nếu có os.PathLike
8, [các] hàng tiêu đề tài liệu không được tính đến. Ví dụ: tham số usecols giống như danh sách hợp lệ sẽ là os.PathLike
9 hoặc read[]
0. Thứ tự phần tử bị bỏ qua, vì vậy read[]
1 giống như read[]
2. Để khởi tạo một Khung dữ liệu từ read[]
3 với thứ tự phần tử được giữ nguyên, hãy sử dụng read[]
4 cho các cột theo thứ tự read[]
5 hoặc read[]
6 cho thứ tự read[]
7
Nếu có thể gọi được, hàm có thể gọi được sẽ được đánh giá dựa trên tên cột, trả về các tên mà hàm có thể gọi được đánh giá là True. Một ví dụ về đối số có thể gọi được hợp lệ sẽ là read[]
8. Sử dụng tham số này dẫn đến thời gian phân tích cú pháp nhanh hơn nhiều và sử dụng bộ nhớ thấp hơn
Nếu dữ liệu được phân tích cú pháp chỉ chứa một cột thì trả về Sê-ri
Không dùng nữa kể từ phiên bản 1. 4. 0. Nối read[]
9 vào lệnh gọi tới open
0 để nén dữ liệu.
Tiền tố để thêm vào số cột khi không có tiêu đề, e. g. 'X' cho X0, X1, ...
Không dùng nữa kể từ phiên bản 1. 4. 0. Sử dụng cách hiểu danh sách trên các cột của DataFrame sau khi gọi open
0.
Các cột trùng lặp sẽ được chỉ định là 'X', 'X. 1’, …’X. N', thay vì 'X'...'X'. Truyền vào Sai sẽ khiến dữ liệu bị ghi đè nếu có tên trùng lặp trong các cột
Không dùng nữa kể từ phiên bản 1. 5. 0. Chưa triển khai và một đối số mới để chỉ định mẫu cho tên của các cột trùng lặp sẽ được thêm vào thay thế
dtype Nhập tên hoặc chính tả của cột -> loại, tùy chọnKiểu dữ liệu cho dữ liệu hoặc cột. e. g. {'một'. np. float64, 'b'. np. int32, 'c'. ‘Int64’} Sử dụng str hoặc đối tượng cùng với cài đặt na_values phù hợp để giữ nguyên và không diễn giải dtype. Nếu bộ chuyển đổi được chỉ định, chúng sẽ được áp dụng THAY THẾ cho chuyển đổi dtype
Mới trong phiên bản 1. 5. 0. Đã thêm hỗ trợ cho defaultdict. Chỉ định một defaultdict làm đầu vào trong đó mặc định xác định dtype của các cột không được liệt kê rõ ràng.
công cụ {'c', 'python', 'pyarrow'}, tùy chọnCông cụ phân tích cú pháp để sử dụng. Công cụ C và pyarrow nhanh hơn, trong khi công cụ python hiện có nhiều tính năng hơn. Đa luồng hiện chỉ được hỗ trợ bởi công cụ pyarrow
Mới trong phiên bản 1. 4. 0. Công cụ “pyarrow” đã được thêm làm công cụ thử nghiệm và một số tính năng không được hỗ trợ hoặc có thể không hoạt động chính xác với công cụ này.
Dict của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các khóa có thể là số nguyên hoặc nhãn cột
true_values danh sách, tùy chọnCác giá trị được coi là True
false_values danh sách, tùy chọnCác giá trị được coi là Sai
skipinitialspace bool, mặc định SaiBỏ qua khoảng trắng sau dấu phân cách
skiprows giống như danh sách, int hoặc có thể gọi được, tùy chọnSố dòng cần bỏ qua [được lập chỉ mục 0] hoặc số dòng cần bỏ qua [int] ở đầu tệp
Nếu có thể gọi được, hàm có thể gọi được sẽ được đánh giá dựa trên các chỉ số hàng, trả về True nếu hàng sẽ bị bỏ qua và Sai nếu không. Một ví dụ về đối số có thể gọi được hợp lệ sẽ là open
2
Số dòng ở cuối tệp cần bỏ qua [Không được hỗ trợ với engine=’c’]
nén int, tùy chọnSố hàng của tập tin để đọc. Hữu ích để đọc các phần của tệp lớn
na_values vô hướng, str, giống như danh sách hoặc dict, tùy chọnAdditional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’.
keep_default_na bool, mặc định ĐúngCó hay không bao gồm các giá trị NaN mặc định khi phân tích dữ liệu. Tùy thuộc vào việc na_values có được chuyển vào hay không, hành vi sẽ như sau
Nếu keep_default_na là True và na_values được chỉ định, thì na_values được thêm vào các giá trị NaN mặc định được sử dụng để phân tích cú pháp
Nếu keep_default_na là True và na_values không được chỉ định, thì chỉ các giá trị NaN mặc định được sử dụng để phân tích cú pháp
Nếu keep_default_na là Sai và na_values được chỉ định, thì chỉ các giá trị NaN được chỉ định na_values mới được sử dụng để phân tích cú pháp
Nếu keep_default_na là Sai và na_values không được chỉ định, sẽ không có chuỗi nào được phân tích thành NaN
Lưu ý rằng nếu na_filter được chuyển thành Sai, các tham số keep_default_na và na_values sẽ bị bỏ qua
na_filter bool, mặc định ĐúngPhát hiện các điểm đánh dấu giá trị bị thiếu [chuỗi trống và giá trị của na_values]. Trong dữ liệu không có bất kỳ NA nào, việc chuyển na_filter=False có thể cải thiện hiệu suất đọc một tệp lớn
dài dòng bool, mặc định SaiCho biết số lượng giá trị NA được đặt trong các cột không phải là số
skip_blank_lines bool, mặc định ĐúngNếu Đúng, hãy bỏ qua các dòng trống thay vì diễn giải dưới dạng giá trị NaN
parse_dates bool hoặc danh sách int hoặc tên hoặc danh sách danh sách hoặc dict, mặc định SaiHành vi như sau
boolean. Nếu Đúng -> thử phân tích cú pháp chỉ mục
danh sách int hoặc tên. e. g. Nếu [1, 2, 3] -> thử phân tích từng cột 1, 2, 3 thành một cột ngày riêng biệt
danh sách các danh sách. e. g. Nếu [[1, 3]] -> kết hợp cột 1 và 3 và phân tích dưới dạng một cột ngày
chính tả, e. g. {'foo'. [1, 3]} -> phân tích cột 1, 3 thành ngày và gọi kết quả là 'foo'
Nếu một cột hoặc chỉ mục không thể được biểu diễn dưới dạng một mảng thời gian, chẳng hạn như do giá trị không thể phân tích cú pháp hoặc hỗn hợp các múi giờ, thì cột hoặc chỉ mục sẽ được trả về không thay đổi dưới dạng kiểu dữ liệu đối tượng. Đối với phân tích cú pháp ngày giờ không chuẩn, hãy sử dụng open
3 sau open
4. Để phân tích cú pháp một chỉ mục hoặc cột có hỗn hợp múi giờ, hãy chỉ định open
5 được áp dụng một phần với open
7. Xem thêm
Ghi chú. Đường dẫn nhanh tồn tại cho các ngày có định dạng iso8601
infer_datetime_format bool, mặc định SaiNếu True và parse_dates được bật, gấu trúc sẽ cố gắng suy ra định dạng của chuỗi ngày giờ trong các cột và nếu có thể suy ra, hãy chuyển sang phương pháp phân tích cú pháp nhanh hơn. Trong một số trường hợp, điều này có thể tăng tốc độ phân tích cú pháp lên 5-10 lần
keep_date_col bool, mặc định SaiNếu True và parse_dates chỉ định kết hợp nhiều cột thì hãy giữ các cột ban đầu
date_parser chức năng, tùy chọnHàm sử dụng để chuyển đổi một chuỗi các cột chuỗi thành một mảng các thể hiện thời gian. Mặc định sử dụng open
8 để thực hiện chuyển đổi. Pandas sẽ cố gắng gọi date_parser theo ba cách khác nhau, chuyển sang cách tiếp theo nếu xảy ra ngoại lệ. 1] Chuyển một hoặc nhiều mảng [như được định nghĩa bởi parse_dates] làm đối số;
Ngày định dạng DD/MM, định dạng quốc tế và châu Âu
cache_dates bool, mặc định ĐúngNếu Đúng, hãy sử dụng bộ nhớ cache của các ngày đã chuyển đổi, duy nhất để áp dụng chuyển đổi ngày giờ. Có thể tạo ra tốc độ tăng đáng kể khi phân tích chuỗi ngày trùng lặp, đặc biệt là các chuỗi có chênh lệch múi giờ
Mới trong phiên bản 0. 25. 0
trình lặp bool, mặc định SaiTrả về đối tượng TextFileReader để lặp lại hoặc nhận các đoạn với open
9
Đã thay đổi trong phiên bản 1. 2. ______3_______0 là trình quản lý ngữ cảnh.
kích thước khối int, tùy chọnTrả về đối tượng TextFileReader để lặp lại. Xem để biết thêm thông tin về StringIO
1 và StringIO
2
Đã thay đổi trong phiên bản 1. 2. ______3_______0 là trình quản lý ngữ cảnh.
nén str hoặc dict, mặc định 'suy luận'Để giải nén dữ liệu trên đĩa nhanh chóng. Nếu 'infer' và 'filepath_or_buffer' giống như đường dẫn, thì hãy phát hiện nén từ các tiện ích mở rộng sau. ‘. gz', '. bz2', '. nén', '. xz', '. zst', '. hắc ín', '. hắc ín. gz', '. hắc ín. xz' hoặc '. hắc ín. bz2’ [nếu không thì không nén]. Nếu sử dụng 'zip' hoặc 'tar', tệp ZIP chỉ được chứa một tệp dữ liệu để đọc trong. Đặt thành None
để không giải nén. Cũng có thể là lệnh với khóa StringIO
5 được đặt thành một trong {StringIO
6, StringIO
7, StringIO
8, StringIO
9, csv.Sniffer
0} và các cặp khóa-giá trị khác được chuyển tiếp lần lượt thành csv.Sniffer
1, csv.Sniffer
2, csv.Sniffer
3, csv.Sniffer
4 hoặc csv.Sniffer
5. Ví dụ: thông tin sau đây có thể được chuyển cho giải nén tiêu chuẩn Z bằng cách sử dụng từ điển nén tùy chỉnh. csv.Sniffer
6
Mới trong phiên bản 1. 5. 0. Đã thêm hỗ trợ cho. tập tin tar.
Đã thay đổi trong phiên bản 1. 4. 0. Hỗ trợ tiêu chuẩn Z.
nghìn str, tùy chọnDấu phân cách hàng nghìn
thập phân str, mặc định ‘. ’Ký tự để nhận dạng là dấu thập phân [e. g. sử dụng ',' cho dữ liệu châu Âu]
lineterminator str [độ dài 1], tùy chọnKý tự để chia tệp thành các dòng. Chỉ hợp lệ với trình phân tích cú pháp C
quotechar str [độ dài 1], tùy chọnKý tự được sử dụng để biểu thị phần đầu và phần cuối của một mục được trích dẫn. Các mục được trích dẫn có thể bao gồm dấu phân cách và nó sẽ bị bỏ qua
trích dẫn int hoặc csv. Ví dụ QUOTE_*, mặc định 0Kiểm soát hành vi trích dẫn trường trên mỗi hằng số csv.Sniffer
7. Sử dụng một trong các QUOTE_MINIMAL [0], QUOTE_ALL [1], QUOTE_NONNUMERIC [2] hoặc QUOTE_NONE [3]
csv.Sniffer
8Khi quotechar được chỉ định và trích dẫn không phải là csv.Sniffer
9, cho biết có hay không diễn giải hai phần tử quotechar liên tiếp BÊN TRONG một trường dưới dạng một phần tử '\s+'
0
Chuỗi một ký tự được sử dụng để thoát các ký tự khác
nhận xét str, tùy chọnCho biết phần còn lại của dòng không nên được phân tích cú pháp. Nếu được tìm thấy ở đầu dòng, dòng đó sẽ bị bỏ qua hoàn toàn. Tham số này phải là một ký tự đơn. Giống như các dòng trống [miễn là os.PathLike
2], các dòng được nhận xét đầy đủ sẽ bị bỏ qua bởi tiêu đề tham số chứ không phải bởi các dòng chữ bỏ qua. Ví dụ: nếu '\s+'
2, phân tích cú pháp '\s+'
3 với header=0
sẽ dẫn đến 'a,b,c' được coi là tiêu đề
Mã hóa để sử dụng cho UTF khi đọc/ghi [ví dụ:. 'utf-8'].
Đã thay đổi trong phiên bản 1. 2. Khi '\s+'
5 là None
, thì '\s+'
7 được chuyển cho '\s+'
8. Mặt khác, '\s+'
9 được chuyển đến '\s+'
8. Hành vi này trước đây chỉ xảy ra đối với '\r\t'
1.
Đã thay đổi trong phiên bản 1. 3. 0. ______6_______2 là một đối số mới. '\s+'
5 không còn ảnh hưởng đến cách xử lý lỗi mã hóa.
Cách xử lý lỗi mã hóa.
Mới trong phiên bản 1. 3. 0
phương ngữ str hoặc csv. Phương ngữ, tùy chọnNếu được cung cấp, thông số này sẽ ghi đè giá trị [mặc định hoặc không] cho các thông số sau. dấu phân cách, trích dẫn kép, ký tự thoát, bỏ qua khoảng trống, ký tự trích dẫn và trích dẫn. Nếu cần ghi đè các giá trị, Cảnh báo phân tích cú pháp sẽ được đưa ra. xem csv. Tài liệu tiếng địa phương để biết thêm chi tiết
error_bad_lines bool, tùy chọn, mặc địnhNone
Các dòng có quá nhiều trường [e. g. một dòng csv có quá nhiều dấu phẩy] theo mặc định sẽ gây ra một ngoại lệ và không có DataFrame nào được trả về. Nếu Sai, thì những "dòng xấu" này sẽ bị loại bỏ khỏi DataFrame được trả về
Không dùng nữa kể từ phiên bản 1. 3. 0. Tham số '\r\t'
5 nên được sử dụng thay thế để xác định hành vi khi gặp phải một dòng xấu thay thế.
None
Nếu error_bad_lines là Sai và cảnh báo_bad_lines là Đúng, thì một cảnh báo cho mỗi “dòng xấu” sẽ được xuất ra
Không dùng nữa kể từ phiên bản 1. 3. 0. Tham số '\r\t'
5 nên được sử dụng thay thế để xác định hành vi khi gặp phải một dòng xấu thay thế.
Chỉ định những việc cần làm khi gặp phải một dòng xấu [một dòng có quá nhiều trường]. Các giá trị được phép là
'lỗi', tăng Ngoại lệ khi gặp phải một dòng xấu
'warn', đưa ra cảnh báo khi gặp dòng xấu và bỏ qua dòng đó
'bỏ qua', bỏ qua các dòng xấu mà không báo trước hoặc cảnh báo khi gặp phải
Mới trong phiên bản 1. 3. 0
Mới trong phiên bản 1. 4. 0
có thể gọi được, chức năng có chữ ký
'\r\t'
8 sẽ xử lý một dòng xấu.'\r\t'
9 là danh sách các chuỗi được chia bởiNone
0. Nếu hàm trả vềNone
, dòng xấu sẽ bị bỏ qua. Nếu hàm trả về một danh sách các chuỗi mới có nhiều phần tử hơn dự kiến, thì mộtNone
2 sẽ được phát ra trong khi loại bỏ các phần tử bổ sung. Chỉ được hỗ trợ khi'\r\t'
1
Chỉ định có hay không khoảng trắng [e. g. None
4 hoặc None
5] sẽ được sử dụng làm sep. Tương đương với cài đặt None
6. Nếu tùy chọn này được đặt thành True, thì không có thông số nào được chuyển vào cho tham số None
7
Xử lý nội bộ tệp theo khối, dẫn đến việc sử dụng bộ nhớ thấp hơn trong khi phân tích cú pháp, nhưng có thể suy luận kiểu hỗn hợp. Để đảm bảo không có loại hỗn hợp, hãy đặt Sai hoặc chỉ định loại bằng tham số dtype. Lưu ý rằng toàn bộ tệp được đọc vào một DataFrame duy nhất, sử dụng tham số chunksize hoặc iterator để trả về dữ liệu theo khối. [Chỉ hợp lệ với trình phân tích cú pháp C]
memory_map bool, mặc định SaiNếu một đường dẫn tệp được cung cấp cho filepath_or_buffer, ánh xạ đối tượng tệp trực tiếp vào bộ nhớ và truy cập dữ liệu trực tiếp từ đó. Sử dụng tùy chọn này có thể cải thiện hiệu suất vì không còn bất kỳ chi phí I/O nào nữa
float_precision str, tùy chọnChỉ định trình chuyển đổi nào mà công cụ C sẽ sử dụng cho các giá trị dấu phẩy động. Các tùy chọn là None
hoặc 'cao' đối với bộ chuyển đổi thông thường, 'di sản' đối với bộ chuyển đổi pandas có độ chính xác thấp hơn ban đầu và 'round_trip' đối với bộ chuyển đổi khứ hồi
Thay đổi trong phiên bản 1. 2
storage_options chính tả, tùy chọnCác tùy chọn bổ sung có ý nghĩa đối với một kết nối lưu trữ cụ thể, e. g. máy chủ, cổng, tên người dùng, mật khẩu, v.v. Đối với các URL HTTP[S], các cặp khóa-giá trị được chuyển tiếp tới None
9 dưới dạng tùy chọn tiêu đề. Đối với các URL khác [e. g. bắt đầu với “s3. //”, và “gcs. //”] các cặp khóa-giá trị được chuyển tiếp đến header=0
0. Vui lòng xem header=0
1 và header=0
2 để biết thêm chi tiết và để biết thêm ví dụ về các tùy chọn lưu trữ, hãy tham khảo