我有一个数据帧,看起来是这样的:如何通过引用其他两列在Python Dataframe中创建一个新列?
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
我想有一个新列“yr_name_id”,对于每个唯一名_ID年增加了组合,然后用每一个新名_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
我已经尝试了各种东西,看起来here,here和上进行分组的几个帖子和枚举。
一开始我尝试结合名_ID和年份,然后用地图来分配值后,创造一个独特的字典,但是当我试图通过对名_ID和年合并为字符串:
df['yr_name_id'] = str(df['Name_id']) + str(df['Year'])
新列有一个我不太明白的0 0 1\n1 1\n2 1\n3 1\n4 2\n5 2...
的非唯一语法。
一个更有希望的办法,我想我只是需要与拉姆达帮助是使用GROUPBY
df['yr_name_id'] = df.groupby(['Name_id', 'Year'])['Name_id'].transform(lambda x:)#unsure from this point
我非常熟悉的λ的等我怎么可能做到这一点的任何指导,将不胜感激。