2013-08-02 36 views
119

Làm cách nào để lấy tên cột chỉ mục trong các chú gấu trúc python? Đây là một khung dữ liệu mẫu:Tiêu đề cột chỉ mục Pandas hoặc tên

   Column 1 
Index Title   
Apples    1 
Oranges    2 
Puppies    3 
Ducks    4 

Điều tôi đang cố gắng làm là lấy/đặt tiêu đề chỉ mục khung dữ liệu. Dưới đây là những gì tôi đã thử:

import pandas as pd 
data = {'Column 1'  : [1., 2., 3., 4.], 
     'Index Title' : ["Apples", "Oranges", "Puppies", "Ducks"]} 
df = pd.DataFrame(data) 
df.index = df["Index Title"] 
del df["Index Title"] 
print df 

Bất kỳ ai biết cách thực hiện việc này?

Trả lời

155

Bạn chỉ có thể nhận/thiết lập các chỉ số qua name tài sản

In [7]: df.index.name 
Out[7]: 'Index Title' 

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

In [9]: df.index.name 
Out[9]: 'foo' 

In [10]: df 
Out[10]: 
     Column 1 
foo    
Apples   1 
Oranges   2 
Puppies   3 
Ducks   4 
+6

Hiện tại (0,16) nó không hoạt động. Hay đúng hơn - nó không hoạt động, nhưng ngay sau khi DataFrame được sửa đổi, nó sẽ xóa tên chỉ mục. –

+4

có thể chỉ định tên chỉ mục tại thời gian tạo DataFrame. ví dụ. 'pd.DataFrame (giá trị, chỉ mục = {" INDEX_NAME ": index_values})'. Tôi không hiểu tại sao điều này không được phép hoặc được thực hiện? – denfromufa

+0

bạn có thể trực tiếp xây dựng với Chỉ mục để thêm tên – Jeff

23

df.index.name của nó nên làm các trick.

Python có hàm dir cho phép bạn truy vấn thuộc tính đối tượng. dir(df.index) hữu ích ở đây.

+0

Làm tắc nghẽn cho đầu 'dir()' đầu đó – SARose

10

Nếu bạn không muốn tạo ra một dòng mới nhưng đơn giản là đặt nó trong ô trống sau đó sử dụng:

df.columns.name = 'foo' 

Nếu không sử dụng:

df.index.name = 'foo' 
+1

Chỉ cần tìm thấy nó là tên cho các tên cột. Không có thắc mắc rằng thiết lập df.index.name cung cấp cho bạn một cấp độ mới. Cảm ơn bạn! – Charles

6

df.columns.values cũng cho chúng ta những tên cột

29

Từ phiên bản 0.18.0 bạn có thể sử dụng rename_axis:

print df 
      Column 1 
Index Title   
Apples   1.0 
Oranges   2.0 
Puppies   3.0 
Ducks    4.0 

Chức năng mới hoạt động tốt trong chuỗi phương pháp.

print df.rename_axis('foo') 
     Column 1 
foo    
Apples  1.0 
Oranges  2.0 
Puppies  3.0 
Ducks   4.0 

Bạn cũng có thể đổi tên tên cột với tham số axis:

print df 
Col Name  Column 1 
Index Title   
Apples   1.0 
Oranges   2.0 
Puppies   3.0 
Ducks    4.0 
print df.rename_axis('foo').rename_axis("bar", axis="columns") 
bar  Column 1 
foo    
Apples  1.0 
Oranges  2.0 
Puppies  3.0 
Ducks   4.0 

print df.rename_axis('foo').rename_axis("bar", axis=1) 
bar  Column 1 
foo    
Apples  1.0 
Oranges  2.0 
Puppies  3.0 
Ducks   4.0 
2

Sử dụng df.index.rename('foo', inplace=True) để thiết lập tên chỉ mục.

Dường như api này có sẵn từ pandas 0.13.

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