Python 按轴编号分割对象的现有函数

Python 按轴编号分割对象的现有函数,python,pandas,Python,Pandas,我希望能够按轴动态索引,例如: df = pd.DataFrame(data=0, index=['row1', 'row2', 'row3'], columns=['col1', 'col2', col3']) df.index(['row1', 'row3'], axis=0) # index by rows df.index(['col1', 'col2'], axis=1) # index by columns 下面的函数可以工作,但我想知道是否有一个现有的函数,因为我

我希望能够按轴动态索引,例如:

df = pd.DataFrame(data=0, index=['row1', 'row2', 'row3'], columns=['col1', 'col2', col3'])
df.index(['row1', 'row3'], axis=0)     # index by rows
df.index(['col1', 'col2'], axis=1)     # index by columns
下面的函数可以工作,但我想知道是否有一个现有的函数,因为我认为这是一个常见的任务

def index_axis(df, index, axis):    
    if axis==0: return df.loc[index]
    elif axis==1: return df.loc[:,index]
    elif axis==2: return df.loc[:,:,index]
    else:
        raise ValueError('No axis named {0} for object type {1}'
                         .format(axis, type(df)))
对于那些感兴趣的人,我想让这个函数作为下面的助手,它可以删除只包含零的行或列

def stripZeros(df, axis=0):
    b = (df != 0).any(axis)
    a2 = (axis+1) % 2
    return index_axis(df, df.axes[a2][b], a2)

此处的切片表示法是
,表示所有:

In [11]: df.loc[['row1', 'row2'], :]
Out[11]:
      col1  col2  col3
row1     0     0     0
row2     0     0     0

In [12]: df.loc[:, ['col1', 'col2']]
Out[12]:
      col1  col2
row1     0     0
row2     0     0
row3     0     0

查看
df.T
(及其索引)。我不是100%确定你在问什么,但听起来很接近。请看我的编辑:重点不是我可以切片行或列,而是我可以通过指定轴在行或列之间进行选择。@Zero python语法实际上不适合作为函数进行切片。努力理解你为什么想要这个tbh。