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
文件格式是这样的
例如:img [0]是'70 80 82 72 .....'是一个字符串
然而,我知道可以通过转换为numpy数组并使用for循环
来解决我想知道我是否可以在没有for循环的情况下处理数据帧
非常感谢
答案 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