我目前正在探索CSV格式的数据集,其值如下:
example 1, class 1
example 2, class 1, class 2
example 3, class 2,
example 4, class 1, class 2, class 4
如您所见,每个示例都以可变长度分配类。是否有任何方法(使用numpy或pandas)可以帮助我将这些数据转换为每个实例一个类?如下所示:
example 1, class 1
example 2, class 1
example 2, class 2
example 3, class 2
example 4, class 1
example 4, class 2
example 4, class 4
我这样做是为了能够轻松地将其输入神经网络模型。我在熊猫中尝试了几种方法,但到目前为止还没有运气。
答案 0 :(得分:3)
我会使用Python的字符串操作和理解。
m = lambda x: map(str.strip, x.split(','))
with open('test.csv') as f:
df = pd.DataFrame(
[[x, y] for x, *ys in map(m, f.readlines()) for y in ys if y],
columns=['Example', 'Class']
)
df
Example Class
0 example 1 class 1
1 example 2 class 1
2 example 2 class 2
3 example 3 class 2
4 example 4 class 1
5 example 4 class 2
6 example 4 class 4