例如:
A B
1981 1
1981 2
1981 3
1981 4
1982 1
1982 2
1982 3
1982 4
1983 1
1983 2
1983 3
1983 4
1984 1
1984 2
1984 3
1984 4
1985 1
列A存在,B是我要添加的。如何生成B?
答案 0 :(得分:1)
您可以使用cumcount
并添加1
:
#output to C column for verify values
df['C'] = df.groupby('A').cumcount() + 1
print (df)
A B C
0 1981 1 1
1 1981 2 2
2 1981 3 3
3 1981 4 4
4 1982 1 1
5 1982 2 2
6 1982 3 3
7 1982 4 4
8 1983 1 1
9 1983 2 2
10 1983 3 3
11 1983 4 4
12 1984 1 1
13 1984 2 2
14 1984 3 3
15 1984 4 4
16 1985 1 1
df = df.assign(C=df.groupby('A')['A'].cumcount().add(1))
print (df)
A B C
0 1981 1 1
1 1981 2 2
2 1981 3 3
3 1981 4 4
4 1982 1 1
5 1982 2 2
6 1982 3 3
7 1982 4 4
8 1983 1 1
9 1983 2 2
10 1983 3 3
11 1983 4 4
12 1984 1 1
13 1984 2 2
14 1984 3 3
15 1984 4 4
16 1985 1 1