我正在嘗試將一個數字乘以一個唯一的數字,因為它屬于哪個區間。
我在我的 pandas 資料框上做了一個 groupby,根據哪個 bin 值落入
bins = pd.cut(df['A'], 50)
grouped = df['B'].groupby(bins)
interval_averages = grouped.mean()
A
(0.00548, 0.0209] 0.010970
(0.0209, 0.0357] 0.019546
(0.0357, 0.0504] 0.036205
(0.0504, 0.0651] 0.053656
(0.0651, 0.0798] 0.068580
(0.0798, 0.0946] 0.086754
(0.0946, 0.109] 0.094038
(0.109, 0.124] 0.114710
(0.124, 0.139] 0.136236
(0.139, 0.153] 0.142115
(0.153, 0.168] 0.161752
(0.168, 0.183] 0.185066
(0.183, 0.198] 0.205451
我需要能夠檢查一個數字屬于哪個區間,然后將它乘以該區間范圍的 B 列的平均值。
從檔案中我知道我可以使用 in 關鍵字來檢查一個數字是否在一個區間內,但我找不到如何訪問給定區間的值。此外,我不想回圈檢查數字是否在每個間隔中,這似乎很慢。
有人知道如何有效地做到這一點嗎?
非常感謝。
uj5u.com熱心網友回復:
您可以將正在測驗的數字存盤在一個陣列中,并使用您的 bin 的 cut() 方法將值排序到它們各自的間隔中。這將回傳一個陣列,其中包含每個數字已落入的箱。您可以使用此陣列來確定您需要訪問的資料框中的值(平均值)的位置(您將知道正確的行)并通過 iloc 訪問該值。
希望這會有所幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409496.html
標籤:
