将列添加到pandas数据框中,该数据框枚举具有相同索引的行

时间:2018-01-31 10:55:29

标签: python pandas dataframe

我想在数据框中添加一个枚举具有相同索引的行的列

df = pd.DataFrame(data=[['a1','b1'],['a2','b2'],['a3','b3'],['a4','b4']],columns=['a','b'],index=[9,9,12,14])

df
Out[13]: 
     a   b
9   a1  b1
9   a2  b2
12  a3  b3
14  a4  b4

在实践中,我想添加一个列'day'以便

df = pd.DataFrame(data=[[1,'a1','b1'],[2,'a2','b2'],[1,'a3','b3'],[1,'a4','b4']],columns=['day','a',''],index=[9,9,12,14])

df
Out[15]: 
    day   a    
9     1  a1  b1
9     2  a2  b2
12    1  a3  b3
14    1  a4  b4

1 个答案:

答案 0 :(得分:1)

使用cumcount,如果需要新列,请先添加insert

df['day'] = df.groupby(level=0).cumcount() + 1
print (df)
     a   b  day
9   a1  b1    1
9   a2  b2    2
12  a3  b3    1
14  a4  b4    1
df.insert(0, 'day', df.groupby(level=0).cumcount() + 1)
print (df)
    day   a   b
9     1  a1  b1
9     2  a2  b2
12    1  a3  b3
14    1  a4  b4