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