2014-10-21 25 views
19

sự khác biệt giữa là gì:Pandas - pandas.DataFrame.from_csv vs pandas.read_csv

pandas.DataFrame.from_csv, doc link: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_csv.html

pandas.read_csv, doc link: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html

+0

Tôi tin rằng một trong những khác biệt quan trọng nhất là mặc định cho cột chỉ mục. Sử dụng 'from_csv' sẽ mặc định sử dụng cột đầu tiên làm chỉ mục. 'read_csv' mặc định là' None' để chỉ mục sẽ được tạo. 'read_csv' phải phù hợp nhất với hầu hết các tập dữ liệu. –

+2

Thậm chí không biết 'from_csv' tồn tại, cá nhân đã xem xét cả hai tôi sẽ sử dụng' read_csv' vì nó có nhiều tùy chọn hơn nên hỗ trợ với dữ liệu mangling – EdChum

Trả lời

22

Có không có sự khác biệt thực sự (cả hai đều dựa trên cùng một chức năng cơ bản), nhưng như đã lưu ý trong các ý kiến, chúng có một số giá trị mặc định khác nhau khác nhau (index_col là 0 hoặc Không, parse_dates là True hoặc False cho read_csvDataFrame.from_csv tương ứng) và read_csv hỗ trợ nhiều đối số (trong from_csv họ chỉ không đi qua).

Ngoài ra, nó là được đề nghị sử dụng pd.read_csv.
DataFrame.from_csv chỉ tồn tại vì lý do lịch sử và giữ tính tương thích ngược (kế hoạch không dùng nữa, xem here), nhưng tất cả các tính năng mới chỉ được thêm vào read_csv (như bạn có thể thấy trong danh sách đối số từ khóa dài hơn nhiều). Trên thực tế, điều này nên được thực hiện rõ ràng hơn trong các tài liệu.

+0

nhờ joris. Tôi sẽ quan tâm đến việc tham gia vào dự án gấu trúc, trừ khi bạn có thể nghĩ ra một thư viện tốt hơn để phân tích dữ liệu hoặc học máy ... – user3659451

1

Một khác biệt khác là pandas.read_csv là 46x đến 490x nhanh như pandas.DataFrame.from_csv (trong thử nghiệm của tôi).

Tôi đã thử nghiệm nó trên Python 3.4.4 và gấu trúc 0.19.2 trên Windows trên tệp csv độc quyền của tôi.