我目前正在探索一个CSV格式的数据集,其中的值如下所示:
example 1, class 1example 2, class 1, class 2example 3, class 2,example 4, class 1, class 2, class 4
如你所见,每个示例被分配了不同长度的类别。是否有任何方法(使用numpy或pandas)可以帮助我将这些数据转换为每个实例一个类别?就像下面这样:
example 1, class 1example 2, class 1example 2, class 2example 3, class 2example 4, class 1example 4, class 2example 4, class 4
我这样做是为了便于将数据输入到神经网络模型中。我已经尝试了pandas的几种方法,但 hitherto 没有成功。
回答:
我会使用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 Class0 example 1 class 11 example 2 class 12 example 2 class 23 example 3 class 24 example 4 class 15 example 4 class 26 example 4 class 4