如何在pandas中添加一个圆形seriers数的新列?

时间:2017-04-05 13:03:18

标签: pandas

例如:

 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?

1 个答案:

答案 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