在panda中创建一列,每10行增加1


import pandas as pd
import numpy as np
rng = np.random.default_rng()
df = pd.DataFrame(rng.integers(0, 100, size=(100, 4)), columns=list('ABCD'))

这是我的数据帧。我想创建一个新列,它从1开始,每10行增加1。因此,对于前十行,该列的值为1,对于第11-20行为2,对于21-30行为3…依此类推

您可以使用numpyarange,通过您的步骤和开始的添加进行楼层划分:

start = 1
step = 10
df['new'] = np.arange(len(df))//step+start

输出:

A   B   C   D  new
0    6  80  51  21    1
1   74  52  18  24    1
2   14  25  19  89    1
3   21  89   2  69    1
4   46  32  77  98    1
..  ..  ..  ..  ..  ...
95  62  87  89  65   10
96  88  70  44  68   10
97  71  14   2  10   10
98  45  62  89  65   10
99  62  40  45  93   10
[100 rows x 5 columns]

您可以使用repeat:

d['new'] = np.repeat(np.arange(1, 11), 10)

相关内容

最新更新