2012-11-26 35 views
8

Tôi không thể tìm ra cách viết/đọc một chuỗi chính xác ... Sau đây (và nhiều biến thể của nó) dẫn đến chuỗi đọc khác với chuỗi văn bản ... lưu ý rằng chuỗi được đọc vào DataFrame thay vì một chuỗi.Làm thế nào để viết/đọc gấu trúc Series đến/từ csv?

In [55]: s = pd.Series({'a': 1, 'b': 2}) 

In [56]: s 
Out[56]: 
a 1 
b 2 

In [57]: s.to_csv('/tmp/s.csv') 

In [58]: !cat /tmp/s.csv 
a,1 
b,2 

In [59]: pd.read_csv('/tmp/s.csv') 
Out[59]: 
    a 1 
0 b 2 

Trả lời

16
In [3]: s.to_csv('/home/wesm/tmp/sfoo.csv') 

In [4]: Series.from_csv('/home/wesm/tmp/sfoo.csv') 
Out[4]: 
a 1 
b 2 

Bạn cũng có thể chuyển header=None, index_col=0, squeeze=True đến read_csv tương tự như những gì Rutger Kassies đề xuất.

2

CSV không chứa bất kỳ thông tin nào về cấu trúc của chuỗi gấu trúc của bạn. Chỉ định một số đối số bổ sung có thể hữu ích. Lấy lại dữ liệu như bình thường là có thể với:

pd.read_csv('s.csv', index_col=0, header=None) 

Nhưng điều đó thêm tên cột và chỉ mục mặc định vào đó. Nếu bạn chỉ muốn lưu Series/DF của bạn để sử dụng sau này thì tốt hơn là sử dụng các phương thức .save() và pd.load().

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