Python pandas dataframe将字符串转换为float

时间:2017-11-07 15:02:47

标签: python pandas numpy

    df = pd.read_csv(filename)
    label = df['laebl']     # first column is label
    img = df['feature']     # second column is image (48*48), but it is a long string

文件格式是这样的

enter image description here

例如:img [0]是'70 80 82 72 .....'是一个字符串

然而,我知道可以通过转换为numpy数组并使用for循环

来解决

我想知道我是否可以在没有for循环的情况下处理数据帧

非常感谢

1 个答案:

答案 0 :(得分:0)

设置

import io
import pandas as pd

text = \
'''label,feature
0,70 80 82 72
0,151 150 147 155'''

buf = io.StringIO(text)

df = pd.read_csv(but)

   label          feature
0      0      70 80 82 72
1      0  151 150 147 155

获取feature列,将其拆分,将其转换为列表,然后将其重新加载到新的数据框中。从那里,使用int将其转换为astype并添加列前缀。

v = pd.DataFrame(df.feature.str.split().tolist()).astype(int).add_prefix('X')
v.insert(0, 'label', df.label)

v

   label   X0   X1   X2   X3
0      0   70   80   82   72
1      0  151  150  147  155