使用脚本复制"text to columns "



我有一个格式如下的csv文件。目前这一切都在一个字符串中

Column 1
Frame 0 adm2_score:0.957
Frame 1 dm2_score:0.942
Frame 2 _adm2_score:0.935
Frame 3 _adm2_score:0.940
Frame 4 _adm2_score:0.927
Frame 5 _adm2_score:0.925

但是对于我的用例,我想将":"处的字符串部分分成一个单独的列,如下所示

Column 1                            Column 2
Frame 0 _adm2_score:    0.957
Frame 1 _adm2_score:    0.942
Frame 2 _adm2_score:    0.935
Frame 3 _adm2_score:    0.940
Frame 4 _adm2_score:    0.927
Frame 5 _adm2_score:    0.925

有没有办法使用脚本(最好是 python 脚本)而不是手动执行此操作.任何帮助将不胜感激。(请注意,我知道您可以在 excel 中手动执行此操作,但我想使用脚本,因为数据集非常大。

只需使用 python 将 : 替换为 :\t。简单的独立演示:

z="""Frame 0 VMAF_feature_adm2_score:0.957
Frame 1 VMAF_feature_adm2_score:0.942
Frame 2 VMAF_feature_adm2_score:0.935
Frame 3 VMAF_feature_adm2_score:0.940
Frame 4 VMAF_feature_adm2_score:0.927
Frame 5 VMAF_feature_adm2_score:0.925""".splitlines()
for l in z:
    print(l.replace(":",":t"))

您可以读取文件并将数据放入z

z = open("input.txt","rb").read().splitlines()
您可以使用

split()函数将其划分到您想要的位置

for line in file:
   list = line.split(":")  ##turns into list at split at colon
   print list[0], ":  ", list[1]

或类似的东西,轻松得到你想要的东西

对于任何对如何做到这一点感到困惑的人,这是我使用 python 脚本发现的一种方法

import csv, sys
z = open("output.csv","rb").read().splitlines()
for l in z:
    print(l.replace(":",","))

之后在命令行中运行这个

test.py > new.csv

最新更新