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…依此类推
您可以使用numpy
的arange
,通过您的步骤和开始的添加进行楼层划分:
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)