在重塑和查询pandasDataFrames
中的数据时,我使用了大量的方法链接。有时会为索引(行)和列创建额外的和不必要的级别。如果是这样,例如在索引(行轴)上,这很容易通过使用DataFrame.reset_index()
来解决:
df.query('some query')
.apply(cool_func)
.reset_index('unwanted_index_level',drop=True) # <====
.apply(another_cool_func)
reset_index
函数允许继续使用链式方法并继续使用DataFrame
。在
然而,我从来没有找到一个与列轴相等的解决方案。有没有?在
我自己刚刚找到了另一个解决方案,即使用
DataFrame
的.T
字段,它相当于DataFrame.transpose()
。在允许连续点链接的一个选项是为
pd.DataFrame
类定义一个新方法,该方法可以降低列索引级别。这叫做monkey patching,它降低了代码的可移植性。在使用此方法可以将多索引列展平为单个索引,并使用下划线合并名称。在
^{pr2}$变成
您只需
stack
列(将其移动到索引)并使用drop=True调用reset_index
,或者可以使用reset_index()
作为起点编写reset_columns()
方法(请参见框架py#L2940)在替代方案:猴头贴解决方案
^{pr2}$相关问题 更多 >
编程相关推荐