使用简单数据:
df = pd.DataFrame({'ids': [0,1,2], 'value': ['2 4 10 0 14', '5 91 19 20 0', '1 1 1 2 44']})
我需要将列转换为数组,所以我使用:
df.iloc[:,-1] = df.iloc[:,-1].apply(lambda x: str(x).split())
X = df.iloc[:, 1:]
X = np.array(X.values)
但是问题是数据正在嵌套,我只需要一个矩阵(3,5)。如何针对大型数据正确快速地做到这一点(避免循环)?
答案 0 :(得分:2)
正如@anky,@ScottBoston在评论中所说。您可以使用字符串方法split和expand参数,最后更改为NumPy:
df.iloc[:, 1].str.split(expand=True).values
array([['2', '4', '10', '0', '14'],
['5', '91', '19', '20', '0'],
['1', '1', '1', '2', '44']], dtype=object)