第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

熊貓:在每組中創(chuàng)建偏離均值的列

熊貓:在每組中創(chuàng)建偏離均值的列

www說(shuō) 2022-12-20 14:46:23
DataFrame在 Python 中考慮以下內(nèi)容:import pandas as pddf = pd.DataFrame({'id':[0]*3+[1]*3,'y':np.random.randn(6),'x':np.random.randn(6)})這使   id         y         x0   0  0.721757  1.5956461   0  0.359601  1.1284732   0  1.134922  2.3179293   1  0.290152 -1.9013364   1  0.128742  0.9826835   1  0.556914  0.745208請(qǐng)注意,y和x是根據(jù) 分組的id。我想創(chuàng)建以下內(nèi)容DataFrame   id         y         x      y_md      x_md0   0  0.721757  1.595646 -0.017003 -0.0850371   0  0.359601  1.128473 -0.379159 -0.5522092   0  1.134922  2.317929  0.396162  0.6372463   1  0.290152 -1.901336 -0.035117 -1.8435214   1  0.128742  0.982683 -0.196527  1.0404985   1  0.556914  0.745208  0.231644  0.803023在哪里y_md包含與其組均值 ( id= 0& 1)的偏差值x_md包含與其組均值 ( id= 0& 1)的偏差值我想到的是df_g = df.groupby('id')yy = pd.Series( df['y'].values - df_g['y'].mean().repeat(3).values )xx = pd.Series( df['x'].values - df_g['x'].mean().repeat(3).values )pd.concat([df,yy.rename('y_md'), xx.rename('x_md')],axis=1)但它看起來(lái)不太好。我想知道是否有一個(gè)優(yōu)雅的 one liner 或類似的結(jié)果相同?我將不勝感激你的幫助。
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

用于GroupBy.transform處理多列,減去 by DataFrame.sub,更改列名 byDataFrame.add_suffix并附加到原始 by DataFrame.join

c = ['x','y']

df = df.join(df[c].sub(df.groupby('id')[c].transform('mean')).add_suffix('_md'))

print (df)

   id         y         x      x_md      y_md

0   0  0.721757  1.595646 -0.085037 -0.017003

1   0  0.359601  1.128473 -0.552210 -0.379159

2   0  1.134922  2.317929  0.637246  0.396162

3   1  0.290152 -1.901336 -1.843521 -0.035117

4   1  0.128742  0.982683  1.040498 -0.196527

5   1  0.556914  0.745208  0.803023  0.231645

或者可以分配新的列名:


df[['x_md','y_md']] = df[['x','y']].sub(df.groupby('id')[['x','y']].transform('mean'))


查看完整回答
反對(duì) 回復(fù) 2022-12-20
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

設(shè)置id為索引,按索引分組并從 df 中減去分組的平均值:


df = df.set_index("id")


df[['y_md','x_md']] = df.sub(df.groupby("id").agg("mean"))


df


       y           x            y_md      x_md

id              

0   0.721757    1.595646    -0.017003   -0.085037

0   0.359601    1.128473    -0.379159   -0.552210

0   1.134922    2.317929    0.396162    0.637246

1   0.290152    -1.901336   -0.035117   -1.843521

1   0.128742    0.982683    -0.196527   1.040498

1   0.556914    0.745208    0.231645    0.803023


查看完整回答
反對(duì) 回復(fù) 2022-12-20
  • 2 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)