2014-09-29 31 views
9

Tệp csv của tôi không có tên cột cho cột đầu tiên và tôi muốn đổi tên nó. Thông thường, tôi sẽ làm data.rename(columns={'oldname':'newname'}, inplace=True), nhưng không có tên trong tệp csv, chỉ cần ''.Đổi tên hình gấu trúc không có tên trong cột

+2

CSV này được tạo như thế nào? Nếu nó được xuất khẩu từ gấu trúc thì đôi khi nó chỉ ra rằng cột đầu tiên là chỉ mục. Trong trường hợp đó, bạn có thể nói gấu trúc này khi đọc nó trong 'pd.read_csv ('file.csv', index_col = [0])' – EdChum

Trả lời

0

Tên có tên, chỉ là '' (chuỗi trống).

In [2]: df = pd.DataFrame({'': [1, 2]}) 

In [3]: df 
Out[3]: 

0 1 
1 2 

In [4]: df.rename(columns={'': 'A'}) 
Out[4]: 
    A 
0 1 
1 2 
+2

Sai, nó không hoạt động – jaycode

+0

Bạn cần inplace = True để thay đổi df trực tiếp. df.rename (cột = {'': 'A'}, inplace = True) – user2602740

14

Khi bạn tải các csv, sử dụng tùy chọn 'index_col' như

pd.read_csv('test.csv', index_col=0) 

index_col: int hoặc chuỗi hay sai, Không Cột mặc định để sử dụng như các nhãn hàng của DataFrame . Nếu một chuỗi được đưa ra, một MultiIndex được sử dụng. Nếu bạn có một tập tin bị thay đổi với delimiters vào cuối mỗi dòng, bạn có thể xem xét index_col = False để buộc gấu trúc để không sử dụng cột đầu tiên là chỉ số (tên hàng)

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html

2

bạn có thể xem dataframe hiện tại sử dụng data.head()

nếu trả về 'Chưa đặt tên: 0' như tiêu đề cột, bạn có thể đổi tên nó theo cách sau:

data.rename (cột = {'Chưa đặt tên: 0': 'tên cột mới'}, inplace = True)

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