如何在熊猫列上应用str.split()?

时间:2020-04-08 18:09:13

标签: pandas numpy matrix

使用简单数据:

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)。如何针对大型数据正确快速地做到这一点(避免循环)?

1 个答案:

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