他の列のpandasデータフレームで列を計算したいと思います。例えばPython - Pandas:特定のキーの値で分割する方法
、私はこれらのデータフレームを持っている場合、
df = pd.DataFrame({
"year" : ['2017', '2017', '2017', '2017', '2017','2017', '2017', '2017', '2017'],
"rooms" : ['1', '2', '3', '1', '2', '3', '1', '2', '3'],
"city" : ['tokyo', 'tokyo', 'toyko', 'nyc','nyc', 'nyc', 'paris', 'paris', 'paris'],
"rent" : [1000, 1500, 2000, 1200, 1600, 1900, 900, 1500, 2200],
})
print(df)
city rent rooms year
0 tokyo 1000 1 2017
1 tokyo 1500 2 2017
2 toyko 2000 3 2017
3 nyc 1200 1 2017
4 nyc 1600 2 2017
5 nyc 1900 3 2017
6 paris 900 1 2017
7 paris 1500 2 2017
8 paris 2200 3 2017
私は同じ年と客室内の他の都市の家賃に比べて家賃を追加したいと思います。
理想の結果が
city rent rooms year vs_nyc
0 tokyo 1000 1 2017 0.833333
1 tokyo 1500 2 2017 0.9375
2 toyko 2000 3 2017 1.052631
3 nyc 1200 1 2017 1.0
4 nyc 1600 2 2017 1.0
5 nyc 1900 3 2017 1.0
6 paris 900 1 2017 0.75
7 paris 1500 2 2017 0.9375
8 paris 2200 3 2017 1.157894
はどのように年と部屋を考慮し
vs_nyc
のように列を追加するには、以下のようなもの?
私が説明するために、働いていた
# filtering gets NaN value, and fillna(method='pad') also not worked
df.rent/df[df['city'] == 'nyc'].rent
0 NaN
1 NaN
2 NaN
3 1.0
4 1.0
5 1.0
6 NaN
7 NaN
8 NaN
Name: rent, dtype: float64
をクリーンアップ少しと/または列を貸し出します。 – pbreach
@pbreachコメントありがとうございました。あなたが言ったように、piRSquaredはそれのための道を提供しました! – evalphobia