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。