在熊猫或python中将libsvm文件重新格式化为制表符分隔的格式

我有一个libsvm格式文件,其中包含类似

1.00000 id:0 1:50.44424 2:2.05040 3:0.00000 4:0.00000 5:0.00000 6:0.98826 7:1.00000 8:0.00000 9:0.50000 10:1.00000 11:1.00000 12:0.00000 13:4.00000 14:2.93121
11.0000 id:0 1:40.23844 2:2.39374 3:0.00000 4:0.00000 5:0.00000 6:0.92109 7:1.00000 8:0.00000 9:0.50000 10:0.44615 11:1.00000 12:0.00000 13:4.00000 14:5.80207 

我想将此数据转换为这种格式,将每个要素的值提取到一列中。

1.0000  0  50.44424 2.05040 0.00000 0.00000 0.00000 0.98826 1.00000 0.00000 0.50000 1.00000 1.00000 0.00000 4.00000 2.93121
11.0000  0 40.23844 2.39374 0.00000 0.00000 0.00000 0.92109 1.00000 0.00000 0.50000 0.44615 1.00000 0.00000 4.00000 5.80207 

我试图在python中使用普通文件读取,因为我不确定我们是否可以在pandas dataframe中进行这种操作。但是我正在努力正确地解析这些值。例如,即使我尝试使用下面的代码提取标签。

writer = csv.writer( open( output_file, 'wf' ))
with open('train-en-us.txt') as f:
    for line in f:
        label = line[0]
        print(f'{label}')

我懂了

1
1

1.0000 
11.0000 

我也试过     line = map(lambda x:tuple(x.split(“:”)),line)         print(f'{list(line)[0]}')

在熊猫中进行此操作更好还是在python中有快速方法

评论