python - 来自具有分隔范围的pandas数据帧行的2D numpy数组

时间:2017-08-15 09:11:27

标签: python numpy dataframe

我是python上的新手,我将csv中的大数据加载到pandas数据帧中。但是,我找不到为数据帧的每一行创建二维数组的方法,其中新的np数组的每一行对应于X范围的值。例如,在我的代码中:

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数组。如果这个问题重复,请转到另一篇文章。提前致谢

2 个答案:

答案 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)

答案 1 :(得分:1)

如果您想在一个3D阵列中使用所有2D阵列,您可以这样做:

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()]