我希望能够按轴动态索引,例如:
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)
答案 0 :(得分:0)
此处的切片表示法是:
,表示全部:
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