3
说我有一个多索引数据框df
与一列A
。我希望创建一个新的列B
,其中我将m
(例如0)和M
(例如1)的值分配给列A
的每个组内的最低值和最高值,同时线性内插所有值之间的值。组内的线性插值
作为示例,请考虑以下df
。我愿做插值为每X
组
A
X Y
bar one -0.007381
two -1.219794
baz one 0.145578
two -0.249321
three -0.249321
four 0.21
foo one -1.046479
two 1.314373
qux one 0.716789
two 0.385795
我相信我可以在熊猫aggregate
和transform
组合做到这一点,但我不知道怎么样。
你如何确定排序?根据'Y'中的序数词,在'Y'上按字母顺序排列,还是按'A'中的值排序?一旦你回答了这个问题:你是否想要简单的分位数(例如,对于有三个成员的组,0.0,0.5,1.0)或将'Y'的值仿射重新缩放为[m,M]? –
谢谢@RamanShah用分位数来做它会很棒**。我不确定我了解您的订购问题。在每个“X”组中,有几行('A'条目)。我想要的是根据它们属于它们的“X”级别的分位数,在每行中为'm-M'范围内的新列'B'分配一个数字。这个数字应该线性插值。例如。底部'10%'获得'm',接下来'10%'获得'10%(Mm)+ m'等 –
[transform docs]中的第一个例子(http://pandas.pydata.org/pandas -docs/stable/groupby.html#transformation)与您想要的非常接近。 –