批量添加细分编号

时间:2018-12-13 13:39:59

标签: python-3.x pandas

全部

试图在df中添加新的列,该列的段号成批增加。输出示例如下所示,其中段号以3条记录的批数递增:

Index   Animal  Segment
0       Dog     1
1       Cat     1
2       Cat     1
3       Bear    2
4       Bird    2
5       Dog     2
6       Dog     3
7       Dog     3
8       Cat     3
9       Bear    4
10      Bear    4
11      Lion    4
12      Dog     5
13      Lion    5
14      Cat     5

不确定在Pandas中实现此目标的最佳方法。我知道在常规的python中,我会逐行执行循环并递增I,但不知道如何在Pandas中执行此操作。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

要做:

df['Segment'] = np.arange(len(df))//3 + 1

Index   Animal  Segment
0       Dog     1
1       Cat     1
2       Cat     1
3       Bear    2
4       Bird    2
5       Dog     2
6       Dog     3
7       Dog     3
8       Cat     3
9       Bear    4
10      Bear    4
11      Lion    4
12      Dog     5
13      Lion    5
14      Cat     5 

说明

np.arange(len(df))创建一个长度为len(df)的序列,并用//3将其元素的下限除以3,然后将其相加1得到所需的输出。

答案 1 :(得分:0)

请您尝试以下。

df['Segment']=df.index // 3 + 1
df