猿问

np 数组的 Pandas 列的意外形状

我的数据框有两列(l_cats 和 r_cats),类型为 np 数组。这是示例数据


l_name,l_cats,l_gh,r_name,r_cats,r_gh,score

piggly wiggly,1|2|4|0|0,1,piggly wiggly,1|2|4|3|0,1,1

piggly wiggly,1|2|4|0|0,1,piggly wiggly,1|2|4|3|0,1,1

piggly wiggly,1|2|4|0|0,1,piggly wiggly,1|2|4|3|0,1,1

piggly wiggly,1|2|4|0|0,1,piggly wiggly,1|2|4|3|0,1,1

.................

.................

<79 rows>

下面是我如何将数据读入这两列


 data = pd.read_csv(self.path, converters={'l_cats': lambda x: np.array([y for y in x.split('|')]),

                                                  'r_cats': lambda x: np.array([y for y in x.split('|')])})

flat = data['l_cats'].values

print(str(flat.shape))

# Output: (79,)

print(str(flat[0].shape))

# Output: (5,)

print(str(type(flat[0])))

# Output: <class 'numpy.ndarray'>

的输出不应该print(str(flat.shape))是 (79, 5) 吗?


互换的青春
浏览 186回答 1
1回答

交互式爱情

不,不应该。如果你只是这样做,print(flat)你应该明白为什么。这是flat:[array(['1', '2', '4', '0', '0'], dtype='<U1')&nbsp;array(['1', '2', '4', '0', '0'], dtype='<U1')&nbsp;array(['1', '2', '4', '0', '0'], dtype='<U1')&nbsp;array(['1', '2', '4', '0', '0'], dtype='<U1')]如您所见,它不是二维矩阵,而是一维数组或一维数组。要将其转换为 2D 矩阵,您可以执行以下操作:mtx = np.stack(flat)
随时随地看视频慕课网APP

相关分类

Python
我要回答