我有一个熊猫数据集,其中的行具有相同的站点ID。我想为每一行创建一个新的ID。目前,我有这样的df:
SiteID SomeData1 SomeData2
100001 20 30
100001 20 30
100002 30 40
我希望实现以下输出
输出:
SiteID SomeData1 SomeData2 Site_ID2
100001 20 30 1000011
100001 20 30 1000012
100002 30 40 1000021
实现此目标的最佳方法是什么?
答案 0 :(得分:1)
将GroupBy.cumcount
的帮助者Series
添加到列SiteID
的字符串中:
s = df.groupby(['SomeData1','SomeData2']).cumcount().add(1)
df['Site_ID2'] = df['SiteID'].astype(str).add(s.astype(str))
print (df)
SiteID SomeData1 SomeData2 Site_ID2
0 100001 20 30 1000011
1 100001 20 30 1000012
2 100002 30 40 1000021