[英]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.