假设我有974行数据。我想要做的是从数据框创建一个新的np.array,格式如下:
只有当长度为10时才将前10行添加到np.array直到数据帧结束。这里我是如何解决这个问题的:
clen = len(df)
X = []
for i in range(clen):
if len(df[i:i+10]) == 10:
X.append(np.array(df[i:i+10]).astype(float))
我相信有更好的方法可以做到这一点,但不想做错事而无法找到它。
我想要做的是将每第11行添加到另一个np.array()。我还无法找到。
所以我有974行。从第一行开始,每10行将添加到X阵列,下一行将添加到另一个阵列。顺便说一句,X会是这样的:
[[0,1,2,3,4,5,6,7,8,9],
[1,2,3,4,5,6,7,8,9,10],
[2,3,4,5,6,7,8,9,10,11]
....]
和y将是
[10,11,12....]
我希望我能解释一下我的需要
答案 0 :(得分:0)
如果你想选择每一行,我认为以下内容应该有效:
#starting criteria can be changed if required
indices = list(range(0,len(df),11))
every_eleventh = df.iloc[indices]
通常,如果要根据索引而不是名称进行选择,则可以使用.iloc。
答案 1 :(得分:0)
我认为你可以使用:
list(df[i:i+10] for i in range(len(df)-9))
获得X。
根据您的问题:every 10 rows will be added to X array and the next one will be added to another array
使用:
df[10:]
得到Y.但我不认为这是你真正想要的Y.