2015-08-05 22 views
6

Giả sử tôi có hai khung dữ liệu, df1 và df2 có cùng một chỉ mục. df1 được sắp xếp theo thứ tự mà tôi muốn df2 được sắp xếp.Sắp xếp Pandas Dataframe theo thứ tự của một chỉ mục khác

df=pd.DataFrame(index=['Arizona','New Mexico', 'Colorado'],columns=['A','B','C'], data=[[1,2,3],[4,5,6],[7,8,9]]) 
print df 

      A B C 
Arizona  1 2 3 
New Mexico 4 5 6 
Colorado 7 8 9 


df2=pd.DataFrame(index=['Arizona','Colorado', 'New Mexico'], columns=['D'], data=['Orange','Blue','Green']) 
print df2 
       D 
Arizona  Orange 
Colorado  Blue 
New Mexico Green 

Cách tốt nhất/hiệu quả nhất để sắp xếp khung dữ liệu thứ hai theo chỉ mục đầu tiên là gì?

Một lựa chọn chỉ được tham gia họ, phân loại, và sau đó thả các cột:

df.join(df2)[['D']] 

       D 
Arizona  Orange 
New Mexico Green 
Colorado  Blue 

Có một cách thanh lịch hơn để làm điều này?

Cảm ơn!

Trả lời

12

reindex sẽ hoạt động - hãy lưu ý rằng nó sẽ tạo ra giá trị thiếu cho giá trị chỉ mục là df, không phải trong df2.

In [18]: df2.reindex(df.index) 
Out[18]: 
       D 
Arizona  Orange 
New Mexico Green 
Colorado  Blue 
+0

Cảm ơn bạn, đây chính xác là những gì tôi đang tìm kiếm. – AJG519

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