我有一個(gè)名為FP13 列的數(shù)據(jù)框,派生了一個(gè)名為 的新字段price/sqm,并刪除了 10 列。FP['price/sqm'] = FP['price'] / FP['floor_area_sqm']FP = FP.loc[:,['year', 'town', 'type', 'price/sqm']]數(shù)據(jù)框有 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根據(jù)['year','town','type']使用下面的代碼進(jìn)行平均,但我得到了TypeError: incompatible index of inserted column with frame indexFP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].aggregate(mean)我有一個(gè)用于不同數(shù)據(jù)框的類似代碼,它可以工作,所以我不確定為什么它不適用于此代碼。另一個(gè)代碼是gdp['yearly_gdp'] = gdp.groupby(['year'])['value'].transform(sum)我假設(shè)它的原因price/sqm是一個(gè) str 并嘗試了以下代碼將它轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù),但我要么得到一個(gè)錯(cuò)誤,要么它仍然作為 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)有人可以建議我如何解決這個(gè)問題嗎?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貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
我認(rèn)為這對(duì)您有用,因?yàn)槟梢愿鶕?jù)數(shù)據(jù)幀的索引來轉(zhuǎn)換結(jié)果
FP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].transform(lambda x:x.mean())

DIEA
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用:
FP['avg_price/sqm'] = FP.groupby(['year', 'town', 'type'])['price/sqm'].mean()
和:
gdp['yearly_gdp'] = gdp.groupby(['year'])['value'].sum()
你不需要使用aggregate
或transform
如果price/sqm
是浮動(dòng)的,只需使用以下方法對(duì)其進(jìn)行轉(zhuǎn)換:
FP['price/sqm'].astype(float)
我希望它能解決你的問題。
添加回答
舉報(bào)
0/150
提交
取消