亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將函數應用于數據框的塊

將函數應用于數據框的塊

www說 2023-06-27 13:26:47
我有一個Dataframe (df)(例如 - 簡化版本)              A    B  0           2.0   3.0 1           3.0   4.0并生成了 20 個引導重新采樣,這些重新采樣現在都在相同的 df 中,但重新采樣編號不同。                                A    B    0     1             0           2.0   3.01     1             1           3.0   4.02     2             1           3.0   4.03     2             1           3.0   4.0..    ....    .. 39    20            0           2.0    3.040    20            0           2.0    3.0現在我想在每個Reample Nr上應用某個函數。說:C = sum(df['A'] * df['B']) / sum(df['B'] ** 2)前景如下:                                 A    B           C0     1             0           2.0   3.0   Calculated Value X11     1             1           3.0   4.0   Calculated Value X12     2             1           3.0   4.0   Calculated Value X23     2             1           3.0   4.0   Calculated Value X2..    ....    .. 39    20            0           2.0    3.0  Calculated Value  X2040    20            0           2.0    3.0  Calculated Value  X20所以有 20 個不同的新值。我知道有一個 df.iloc 命令,我可以在其中指定行選擇,df.iloc[row, column]但我想找到一個命令,無需為 20 個樣本重復代碼。我的目標是找到一個識別重新采樣編號的命令。自動計算每個重新采樣編號的函數。我怎樣才能做到這一點?
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

使用DataFrame.assign創建兩個新列x和 ,y對應于df['A'] * df['B']df['B']**2,然后使用DataFrame.groupbyon?Resample Nr.(或level=1) 和transformusing?sum

s = df.assign(x=df['A'].mul(df['B']), y=df['B']**2)\

? ? ? .groupby(level=1)[['x', 'y']].transform('sum')

df['C'] = s['x'].div(s['y'])

結果:


? ? ? ? ? ?A? ? B? ? ? ? ?C

0? 1? 0? 2.0? 3.0? 0.720000

1? 1? 1? 3.0? 4.0? 0.720000

2? 2? 1? 3.0? 4.0? 0.750000

3? 2? 1? 3.0? 4.0? 0.750000

39 20 0? 2.0? 3.0? 0.666667

40 20 0? 2.0? 3.0? 0.666667


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號