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)與您想要的非常接近。 –