我想将分层的 MultiIndex 展平为平面索引
理论上,分配给 df1.columns
可以完成这些工作,但是我想知道是否有使用 lambda 的方法调用来做到这一点?!这将使管道编程更好。
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.normal(size=(10,2)), columns=list("ab"))
df1 = (df
.rolling(2)
.agg(["min", "max"])
)
df1.columns = df1.columns.map("{0[0]}_{0[1]}".format)
df1
我能否用 lambda 替换方法调用中的列 - 因此在大括号内(但比使用 pipe
的 Python 函数更好)?
请您参考如下方法:
df.rolling(2).agg(["min", "max"]).T.apply(
lambda x:
x.append(pd.Series(dict(new='_'.join(x.name)))),
1).set_index('new').rename_axis(None).T