我有一个2d数组/ DF
>>> X_df.shape
Out[36]: (138, 2164)
此数组的每一行都有一个给定列的值(所有行都不同),后跟nans:
>>> X_df.head(1).T
Out[28]:
Row1
0 1208.380
1 1207.600
2 1207.400
... ...
247 1213.030
248 1212.950
249 1213.000
... ...
1914 nan
1915 nan
1916 nan
我需要创建另一个形状(138,n)的数组/ DF Y,它从选择等间距的X_df的每一行中得到n(= 3或5或10)个值。因此,如果X_df第1行有100个元素,第2行有50,那么对于n = 10,Y行1 = X_df第1行中的每第10个元素,Y行2 = X_df第2行中的每第5个元素。
我创建了一个函数来获取每个索引中的一组数值。
>>> last= X_df.apply(last_index,axis=1)
>>> last
Out[34]:
Row1 360
... ...
Row45 1438
获得所需Y阵列/ DF的最佳方法是什么?想在这里避免循环。我试过了X_df[::last]
,但却出错"ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"
我调查了np.meshgrid
,但这似乎并不重要。另外看了DataFrame.sample
,但这似乎只对随机抽样有用。