Ich habe einen Datenrahmen, die etwa wie folgt aussieht:Wie erstelle ich eine neue Spalte in Python Dataframe, indem ich auf zwei andere Spalten referenziere?
df = pd.DataFrame({'Name':['a','a','a','a','b','b','b'], 'Year':[1999,1999,1999,2000,1999,2000,2000], 'Name_id':[1,1,1,1,2,2,2]})
Name Name_id Year
0 a 1 1999
1 a 1 1999
2 a 1 1999
3 a 1 2000
4 b 2 1999
5 b 2 2000
6 b 2 2000
Was ich möchte, muss eine neue Spalte ‚yr_name_id‘, das für jede einzelne Name_id Jahr Kombination erhöht und beginnt dann von neuem mit jedem neuen Name_id .
Name Name_id Year yr_name_id
0 a 1 1999 1
1 a 1 1999 1
2 a 1 1999 1
3 a 1 2000 2
4 b 2 1999 1
5 b 2 2000 2
6 b 2 2000 2
Ich habe eine Vielzahl von Dingen versucht, und sah here, here und an einigen Stellen auf groupby und aufzuzählen.
Zuerst habe ich versucht, ein einzigartiges Wörterbuch Erstellen nach Name_id und Jahr kombiniert und dann Karte unter Verwendung von Werten zuweisen, aber wenn ich versuche Name_id und Jahr als Strings zu kombinieren über:
df['yr_name_id'] = str(df['Name_id']) + str(df['Year'])
Die neue Spalte eines nicht eindeutige Syntax von 0 0 1\n1 1\n2 1\n3 1\n4 2\n5 2...
, die ich nicht wirklich verstehe.
Ein vielversprechender Ansatz, den ich denke, dass ich gerade mit dem Lambda helfen muß, ist durch groupby mit
df['yr_name_id'] = df.groupby(['Name_id', 'Year'])['Name_id'].transform(lambda x:)#unsure from this point
Ich bin sehr vertraut mit Lambda ist so eine Anleitung, wie ich dies tun könnte wäre sehr dankbar.