我有一个排序的熊猫数据框,如下所示:
ID Values
'AAAA' 1
'AAAA' 2
'AAAA' 3
'BBBB' 4
'CCCC' 5
'CCCC' 6
我必须创建一个"ID_Index"像这样的新列
ID Values ID_Index
'AAAA' 1 1
'AAAA' 2 1
'AAAA' 3 1
'BBBB' 4 2
'CCCC' 5 3
'CCCC' 6 3
这意味着代码将检查第 1 行的 ID,它将开始计数为 1。然后每当有新的 id 时,计数器将为 +1。在 SAS 中,我们过去常常使用first.id和/或last.id. 在这里我发现使用 shift() 我们可以创建它。我在 python 中尝试了以下代码,但它不起作用。
c=1
for index, row in df_pandas.iterrows():
if (df_pandas['ID'] == df_pandas['ID'].shift()):
df_pandas['ID_Index']=c
else:
df_pandas['ID_Index'] = c+1
print df_pandas
侃侃尔雅
慕田峪9158850
相关分类