我有一个格式如下的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