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

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

將派生字段更改為浮動并獲取派生字段的平均值

將派生字段更改為浮動并獲取派生字段的平均值

皈依舞 2021-06-07 09:29:46
我有一個名為FP13 列的數據框,派生了一個名為 的新字段price/sqm,并刪除了 10 列。FP['price/sqm'] = FP['price'] / FP['floor_area_sqm']FP = FP.loc[:,['year', 'town', 'type', 'price/sqm']]數據框有 700,000 行,看起來像這樣:   year   town    type     price/sqm0  1990   AMK   1 ROOM    290.3225811  1990   AMK   1 ROOM    193.5483872  1990   AMK   1 ROOM    258.0645163  1990   AMK   1 ROOM    193.5483874  1990   AMK   3 ROOM    646.5753425  1990   AMK   3 ROOM    686.567164我正在嘗試price/sqm根據['year','town','type']使用下面的代碼進行平均,但我得到了TypeError: incompatible index of inserted column with frame indexFP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].aggregate(mean)我有一個用于不同數據框的類似代碼,它可以工作,所以我不確定為什么它不適用于此代碼。另一個代碼是gdp['yearly_gdp'] = gdp.groupby(['year'])['value'].transform(sum)我假設它的原因price/sqm是一個 str 并嘗試了以下代碼將它轉換為一個浮點數,但我要么得到一個錯誤,要么它仍然作為 str 返回。FP['price/sqm'] = float(FP['price/sqm'])FP['price/sqm'] = FP['price/sqm'].astype(float)FP['price/sqm'] = pd.to_numeric(FP['price/sqm'], errors = 'coerce')FP[['price/sqm']] = FP[['price/sqm']].apply(pd.to_numeric)有人可以建議我如何解決這個問題嗎?FP.dtypes:   year   town    type     price/sqm0  1990   AMK   1 ROOM    290.3225811  1990   AMK   1 ROOM    193.5483872  1990   AMK   1 ROOM    258.0645163  1990   AMK   1 ROOM    193.5483874  1990   AMK   3 ROOM    646.5753425  1990   AMK   3 ROOM    686.567164year        objecttown        objecttype        objectprice/sqm   float64dtype: objectdf1.dtypes:month               objecttown                objecttype                objectblock               objectstreet_name         objectstorey_range        objectfloor_area_sqm      float64flat_model          objectlease_commence_date int64resale_price        int64dtype:       object
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

我認為這對您有用,因為您可以根據數據幀的索引來轉換結果

FP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].transform(lambda x:x.mean())



查看完整回答
反對 回復 2021-06-08
?
DIEA

TA貢獻1820條經驗 獲得超3個贊

您可以使用:

FP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].mean()

和:

gdp['yearly_gdp'] = gdp.groupby(['year'])['value'].sum()

你不需要使用aggregatetransform

如果price/sqm是浮動的,只需使用以下方法對其進行轉換:

FP['price/sqm'].astype(float)

我希望它能解決你的問題。


查看完整回答
反對 回復 2021-06-08
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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