2016-10-20 25 views
22

Tôi đã làm một số tìm kiếm câu trả lời cho câu hỏi này, nhưng tất cả tôi có thể hình dung ra là thế này:Làm thế nào để chọn cột cuối cùng của dataframe

df[df.columns[len(df.columns)-1]] 

mà đối với tôi dường như unweildy, và un-pythonic (và chậm?)

Cách dễ nhất để chọn dữ liệu cho cột cuối cùng trong khung dữ liệu gấu trúc mà không chỉ định tên cột là gì?

Trả lời

37

Sử dụng iloc và chọn tất cả các hàng (:) so với cuối cột (-1):

df.iloc[:,-1] 
5

Hơi giống với nỗ lực ban đầu của bạn, nhưng nhiều Pythonic, là sử dụng ước tiêu cực-indexing chuẩn của Python để đếm ngược từ cuối:

df[df.columns[-1]] 
2
df.T.iloc[-1] 

df.T.tail(1) 

pd.Series(df.values[:, -1], name=df.columns[-1]) 
+1

Tôi không thấy bất kỳ giá trị xây dựng Series dứt khoát ra khỏi NumPy các giá trị khai thác so với một cuộc gọi trực tiếp đến iloc – Boud

+0

@ Boud, Có rất nhiều cách để làm điều này. Tôi chỉ đơn giản là cố gắng đổ một đống xuống. Phải thừa nhận rằng, lựa chọn thứ ba là yếu nhất. – piRSquared

1

Đây là một cách khác để thực hiện. Tôi nghĩ có thể tổng quát hơn một chút:

df.ix[:,-1] 
+0

Trong trường hợp này, câu trả lời của bạn không được khuyến nghị vì câu hỏi yêu cầu một cách rõ ràng cho cột * cuối cùng * là vị trí chỉ mục dựa trên. 'ix' trộn nhãn và bộ đếm vị trí chỉ mục. Xem [tại đây] (http://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation) để biết thêm. – pansen

1

Câu hỏi đặt ra là: cách chọn cột cuối cùng của một khung dữ liệu? Appart @piRSquared, không trả lời câu hỏi.

cách đơn giản nhất để có được một dataframe với cột cuối cùng là:

df.iloc[ :, -1:] 
Các vấn đề liên quan