尝试使用 np.arange 创建一个长度为我的数据帧一半的计数器

Trying to use np.arange to create a counter that is half the length of my dataframe

我正在尝试填充我的 pandas 数据框中的一列,该列从 1 开始编号,并且是一个递增 1 的计数器。但是,我希望它恰好是数据框中已包含数据长度的一半(例如,如果我的数据框有 10 行,我希望计数器达到 5。)我一直在尝试不同的解决方案,目前我有这个解决方案:

# Fill the cycles column with however many rows exist / 2
jac_output['Cycles'] = (np.arange(1,len(jac_output)+1))//2

然而,它并没有将数据帧的长度减半,而只是复制数字,如下所示:

print(jac_output['Cycles'].head(8))

0    0
1    1
2    1
3    2
4    2
5    3
6    3
7    4

print(jac_output['Cycles'].head(7))

0    0
1    1
2    1
3    2
4    2
5    3
6    3

如有任何帮助,我们将不胜感激!我觉得这应该是一个简单的解决方案,但我正在为此撕心裂肺!

numpy.where:

中使用整数除以数据帧长度的一半 // 作为计数器
jac_output = pd.DataFrame({'a': range(9)})

lens = len(jac_output)
arr = np.arange(lens)
a = arr // (lens // 2)
jac_output['Cycles'] = np.where(a == 0, arr + 1, np.nan)
print (jac_output)
   a  Cycles
0  0     1.0
1  1     2.0
2  2     3.0
3  3     4.0
4  4     NaN
5  5     NaN
6  6     NaN
7  7     NaN
8  8     NaN