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

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

          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

pandas DataFrame:根据另一列中的布尔值计算总和 - python

我对Python相当陌生,我尝试在pandas中模拟以下逻辑我目前正在循环抛出行,并希望对前几行的AMOUNT列中的值求和,但只求和最后一次看到的“ TRUE”值。实际数据似乎效率低下(我的数据框大约有500万行)?想知道用Python处理这种逻辑的有效方法是什么?逻辑:逻辑是,如果FLAG为TRUE,我想对前几行的AMOUNT列中的值求和,但只求和最后一次…

Pandas Dataframe:在越来越多的列上循环并计算均值和标准差 - python

基本上,我有一个包含20个属性和一个值的表。我想找到std = 0-(即粒度级别完美允许1:1)所需的最少数量的属性。我想建立一个循环如果使用列名进行硬编码,则看起来像这样:for iter in range(1,21): dfcalc = df.groupby("LINE_NUM")["RATIO"].agg([np…

pandas.DataFrame.replace更改列的dtype - python

因此,我试图用np.nan替换数据框中的None值,并注意到在此过程中,即使数据框中的float列的数据类型不包含任何丢失的数据,它们也都更改为object。举个例子:import pandas as pd import numpy as np data = pd.DataFrame({'A':np.nan,'B':1…

重命名默认ID python - python

我想连接两个dataFrames,但是两个数据具有不同的ID,所以结果是错误的这是我的代码data=pd.DataFrame(df.columns) data1=data.drop(axis=1,index=[0,1,2,3]).transpose() data1 这是dataframe1另一个数据框:y=sma_algo(df.loc['H+L&…

Python Pandas:按分组分组,平均? - python

我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…