2017-08-15 19 views
2

我是python的新手,我从csv加载大数据到熊猫数据框。但是,我找不到一种方法为数据帧的每一行创建一个2d数组,其中新的np数组的每一行对应于X值范围。例如,在我的代码:蟒蛇 - 从具有分隔范围的熊猫数据框行的2D numpy数组

import pandas as pd 
import numpy as np 

data = pd.read_csv("categorization/dataAll10Overfit.csv",header=None) 
#print(data) 
rec = data.iloc[:,0:3968] # outputs i rows x 3969 columns 

有3968个值数据帧的每一行中,我希望创建一个124x32 numpy的阵列,使得124倍的值的各块成为2D NP阵列中的行。我知道C#,并且它会使用for循环来填充新数组,但我想Python中应该有一个单行函数来将数据框箭头的所有数据拆分为新的np数组。如果此问题重复,请将我转到其他帖子。在此先感谢

回答

1

如果你想要一个三维阵列中的所有二维数组,你可以这样做:

arr = np.zeros((data.shape[0], 124, 32)) 

for idx, row in data.iterrows(): 
    arr[idx] = np.asarray(row).reshape(124, 32) 

或者作为阵列的一个班轮名单:

arr = [np.asarray(row).reshape(124, 32) for idx, row in data.iterrows()] 
+0

这解决了我的问题。谢谢。 –

1

我假设你不想替换阵列。

nested_record = pd.DataFrame(columns=['record'], index=range(3968)) 

for i in range(3968): 
    nested_record['records'].iloc[i] = data.iloc[i].reshape(124, 32)