簡體   English   中英

Pandas df 根據整數索引列表對行和列重新排序

[英]Pandas df reorder rows and columns according to integer index list

我的數據框具有以下結構:

          col1    col2   col3
 myindex
 apple    A       B      C
 pear     Ab      Bb     Cb
 turtle   A1      B1     C1

現在我得到兩個列表,一個具有重新排序的列索引,一個具有重新排序的行索引,但是作為整數,例如rowindices = [3,1,2]colindices = [1,3,2] 數據框現在應該根據這些索引重新排序,然后看起來像這樣:

          col1   col3   col2
 myindex
 turtle   A1     C1     B1
 apple    A      C      B
 pear     Ab     Cb     Bb

如何才能做到這一點?

使用DataFrame.iloc並且因為 python 從0計數,將列表轉換為數組並減去1

rowindices = [3,1,2]
colindices = [1,3,2]

df = df.iloc[np.array(rowindices)-1, np.array(colindices)-1]
print (df)
        col1 col3 col2
myindex               
turtle    A1   C1   B1
apple      A    C    B
pear      Ab   Cb   Bb

如果可能,列表解決方案中的更改值更簡單:

rowindices1 = [2,0,1]
colindices1 = [0,2,1]

df = df.iloc[rowindices1, colindices1]
print (df)
        col1 col3 col2
myindex               
turtle    A1   C1   B1
apple      A    C    B
pear      Ab   Cb   Bb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM