2013-10-17 20 views
6

câu hỏi trong tiêu đề. exaple:Lưu và tải dataframe vào kết quả csv trong cột Chưa đặt tên

x=[('a','a','c') for i in range(5)] 
df = DataFrame(x,columns=['col1','col2','col3']) 
df.to_csv('test.csv') 
df1 = read_csv('test.csv') 

    Unnamed: 0 col1 col2 col3 
0   0 a a c 
1   1 a a c 
2   2 a a c 
3   3 a a c 
4   4 a a c 

Lý do có vẻ là khi lưu một khung dữ liệu, cột chỉ mục cũng được viết, không có tên trong tiêu đề. sau đó khi bạn tải lại csv, nó được tải với cột chỉ mục làm cột chưa đặt tên. Đây có phải là một lỗi? Làm cách nào để tránh viết một csv với chỉ mục hoặc thả các cột chưa được đặt tên trong khi đọc?

Trả lời

7

Bạn có thể xóa nhãn hàng thông qua indexindex_labelparameters of to_csv.

+0

Đây là những gì tôi đang tìm kiếm, vì nó tránh tạo ra vấn đề thay vì xử lý các từ sau. – idoda

0

Bạn có thể chỉ định rõ ràng cột nào bạn muốn ghi bằng thông số cols.

+0

Điều đó không tốt, vì tôi có thể có nhiều, nhiều cột .. những gì tôi có thể làm mặc dù là df [df.columns] .to_csv(). đó sẽ không phải là một rắc rối lớn .. – idoda

4

Đây không phải là đối xứng vì có sự mơ hồ trong định dạng csv do vị trí. Bạn cần phải xác định một index_col về đọc lại

In [1]: x=[('a','a','c') for i in range(5)] 

In [2]: df = DataFrame(x,columns=['col1','col2','col3']) 

In [3]: df.to_csv('test.csv') 

In [4]: !cat test.csv 
,col1,col2,col3 
0,a,a,c 
1,a,a,c 
2,a,a,c 
3,a,a,c 
4,a,a,c 

In [5]: pd.read_csv('test.csv',index_col=0) 
Out[5]: 
    col1 col2 col3 
0 a a c 
1 a a c 
2 a a c 
3 a a c 
4 a a c 

này trông rất giống với ở trên, như vậy là 'foo' một cột hoặc một chỉ số?

In [6]: df.index.name = 'foo' 

In [7]: df.to_csv('test.csv') 

In [8]: !cat test.csv 
foo,col1,col2,col3 
0,a,a,c 
1,a,a,c 
2,a,a,c 
3,a,a,c 
4,a,a,c 
+0

Cảm ơn, tôi nghĩ giải pháp sẽ đơn giản :) – idoda

+0

nó là, chỉ cần chỉ định '' index_col = 0'' – Jeff

0

Đó là cách sử dụng chỉ số df.to_csv('test.csv', index_label=False) Nhưng đối với tôi, khi tôi đã cố gắng trình Kaggle đó là lỗi trở lại "ERROR: Ghi 1 có 3 cột nhưng dự kiến ​​2", vì vậy tôi giải quyết nó sử dụng this code.

+0

Bạn nên xem xét thêm một số văn bản giải thích cho câu trả lời của bạn để tăng chất lượng của nó. – user2314737

Các vấn đề liên quan