pandas 多级panda Dataframe 中的每级数学运算?

hxzsmxv2  于 2023-01-01  发布在  其他
关注(0)|答案(2)|浏览(113)

我有一个索引为(a,B,c)的 Dataframe ,列:D到H。我已经按[a, E]对 Dataframe 进行了排序,现在我想将 Dataframe 规范化,如下所示:

for va in df.index.get_level_values('a').unique():
    df[df['a']==va] = df[df['a']==va]/(df[df['a']==va].iloc[0])

我想知道有没有更有效的方法,甚至是一个内置的方法来进行这种操作?
可能是反向的groupby('xxxx').apply()。因为groupby只是聚合。我可能需要一些反向的东西。

mm5n2pyu

mm5n2pyu1#

据我了解,这样如何?

df = df.groupby(['a'])['D', 'E', 'F', 'G', 'H'].transform(lambda x: x.div(x.iloc[0]))

如果你提供一个例子,我们可以提供更好的帮助。

3qpi33ja

3qpi33ja2#

我认为不需要在.transform中使用lambda函数。

df = df[["D", "E", "F", "G", "H"]] / df.groupby("a").transform("first")

而不是。

相关问题