尝试使用 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
我正在尝试填充我的 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