2013-08-21 49 views
28

Tôi có thể đang sử dụng cụm từ tìm kiếm kém khi cố gắng tìm câu trả lời này. Ngay bây giờ, trước khi lập chỉ mục một DataFrame, tôi nhận được một danh sách các giá trị trong một cột theo cách này ...Nhận các giá trị chỉ mục hàng của Pandas DataFrame dưới dạng danh sách?

list = list(df['column']) 

... sau đó tôi sẽ set_index trên cột. Điều này có vẻ như một bước lãng phí. Khi thử trên một chỉ mục, tôi nhận được một lỗi chính.

Làm cách nào để lấy các giá trị trong chỉ mục (cả đơn và đa) và đặt chúng trong danh sách hoặc danh sách bộ dữ liệu?

+4

* Tại sao * bạn có muốn chúng dưới dạng danh sách không ?? –

+3

'df.index.values'? –

+0

Nếu bạn chỉ nhận các thông tin này để tự chuyển vào 'df.set_index()', điều đó không cần thiết. Chỉ cần trực tiếp làm 'df.set_index ['your_col_name', drop = False]', đã có. – smci

Trả lời

60

Để có được giá trị index như một list/list của tuple s cho Index/MultiIndex làm:

df.index.values.tolist() # an ndarray method, you probably shouldn't depend on this 

hoặc

list(df.index.values) # this will always work in pandas 
+0

Cảm ơn bạn! Điều này làm việc hoàn hảo. – TravisVOX

+0

Tôi nhận được TypeError: đối tượng 'list' không thể gọi để sử dụng 'list (df.index.values)' – Bode

+0

@Bode bạn có thể có một biến khác gọi là 'list' trong phạm vi. –

-1

Nếu bạn chỉ nhận được những tự vượt qua thành df.set_index() , đó là không cần thiết. Chỉ cần thực hiện trực tiếp df.set_index['your_col_name', drop=False], rồi. Nó là rất hiếm trong gấu trúc mà bạn cần để có được một chỉ mục như một danh sách Python (trừ khi bạn; lại làm một cái gì đó khá sôi nổi, hoặc người nào khác chuyển chúng trở lại NumPy), vì vậy nếu bạn đang làm điều này rất nhiều, đó là một mã ngửi thấy rằng bạn đang làm điều gì sai.

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