2016-04-09 26 views
40

Tôi có một tình huống trong đó khi tôi đọc số csv từ df Tôi nhận được cột chỉ mục không mong muốn có tên unnamed:0. Điều này rất khó chịu! Tôi đã thửPandas: cách loại bỏ cột `Chưa đặt tên:` trong một khung dữ liệu

merge.to_csv('xy.df', mode = 'w', inplace=False) 

mà tôi nghĩ là giải pháp cho điều này, nhưng tôi vẫn nhận được cột unnamed:0! Có ai có ý tưởng về điều này không?

Trả lời

54

Đó là cột chỉ mục, vượt qua index=False để không viết nó ra, xem docs

Ví dụ:

In [37]: 
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc')) 
pd.read_csv(io.StringIO(df.to_csv())) 

Out[37]: 
    Unnamed: 0   a   b   c 
0   0 0.109066 -1.112704 -0.545209 
1   1 0.447114 1.525341 0.317252 
2   2 0.507495 0.137863 0.886283 
3   3 1.452867 1.888363 1.168101 
4   4 0.901371 -0.704805 0.088335 

so sánh với:

In [38]: 
pd.read_csv(io.StringIO(df.to_csv(index=False))) 

Out[38]: 
      a   b   c 
0 0.109066 -1.112704 -0.545209 
1 0.447114 1.525341 0.317252 
2 0.507495 0.137863 0.886283 
3 1.452867 1.888363 1.168101 
4 0.901371 -0.704805 0.088335 

Bạn cũng có thể tùy chọn nói read_csv rằng cột đầu tiên là cột chỉ mục bằng cách đi qua index_col=0:

In [40]: 
pd.read_csv(io.StringIO(df.to_csv()), index_col=0) 

Out[40]: 
      a   b   c 
0 0.109066 -1.112704 -0.545209 
1 0.447114 1.525341 0.317252 
2 0.507495 0.137863 0.886283 
3 1.452867 1.888363 1.168101 
4 0.901371 -0.704805 0.088335 
+0

Cảm ơn EdChum! Thất bại loại bỏ! Nghĩ rằng tôi chỉ đọc tài liệu và tìm giải pháp này. Bằng cách nào đó tôi đã không hiểu đúng. –

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