Pandas df根据整数索引列表对行和列进行重新排序

丽兹·爱丽丝

我的数据框具有以下结构:

          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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据列值对具有MultiIndex的pandas DataFrame进行排序

如何基于Pandas数据框中的列表对索引行进行重新排序

根据列名称对pandas数据框中的列重新排序

对Pandas Dataframe列中的列表进行排序

按列表对索引进行排序-Python Pandas

Python Pandas:对列进行排序

在python pandas中应用样式后,如何删除和重新排序(重新索引)列?

通过最小索引号对Pandas数据框组进行排序,然后基于第三列对组中的所有其他列进行重新排序

如何使用Pandas重新排序多索引列?

如何在Pandas中重新排序多索引列?

按自定义值列表对pandas df列进行排序

根据索引自然排序pandas DataFrame

pandas dataframe根据列总数对列进行排序

使用For循环对Pandas DataFrame进行排序和重新排列

排序和使行具有相同的索引pandas python

根据Pandas中的索引和条件将数据从列移动到行

按日期对Pandas数据框列索引进行排序

根据索引中整数的重复集对pandas DataFrame重新排序

同时按列索引和行索引对Pandas DataFrame进行排序

按多列和重复索引对pandas DataFrame进行排序

如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

根据列值对 Pandas Dataframe 进行排序

根据不同的列值删除 Pandas 中的 DF 行

Pandas:按值列表对列进行排序,类似于 SELECT * FROM df WHERE ORDER BY FIELD(id,...)

部分重新索引行索引 Pandas DataFrame

pandas DF 超出索引 = 键的字典列表

使用 Pandas 根据特定顺序对重复的列重新排序

根据 Pandas 中的列表对选定的多列进行排序

根据 Pandas 中的列表对多列进行排序