Ich möchte die Spalte von anderen Reihe von Pandas Datenrahmen zu berechnen.Python - Pandas: wie durch spezifischen Schlüssel Wert
Zum Beispiel, wenn ich diesen Datenrahmen habe,
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
Ich mag die Miete hinzufügen im Vergleich zu anderer Miete Stadt im selben Jahr und Zimmer.
Ideal Ergebnisse sind unten wie,
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
Wie Spalte wie vs_nyc
unter Berücksichtigung des Jahres und Zimmer hinzufügen?
habe ich versucht, einige, aber nicht funktionierte,
# 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
Ich denke, es könnte ein schöner Weg, dies auf oder Abstapeln von der Stadt mit dem ersten Schwenk zu tun und/oder mieten Spalten. – pbreach
@pbreach Vielen Dank für den Kommentar. Wie du gesagt hast, hat piRSquared den Weg dafür geebnet! – evalphobia