所以我想用逗号作为分隔符将这种数据解析成.csv文件。
2014-11-19 08:57:45.696;1;1;52.33705;4.843468;8.319668;20.44;93.05875;6;5;1416383865;0.0806427;-0.4734802;-0.7419281;-16.14367;27.67606;-15.92525;53.06408
52.48165;26;0.04704554;0.9128267;0.4871223;0.1783603;0.2536548;0.6368796;0.07435028;0.8879893;0.4615479;-0.1116289;0.1097959;0.04115437;0.0.0.0;10.167.22.1;1;0
2014-11-19 08:57:46.695;2;2;52.33704;4.843778;8.393764;20.03;92.07;6;5;1416383866;-0.7679138;0.02275085;-1.0784;-22.94859;32.63707;2.281387;63.01468
62.43224;26;-0.2999492;-0.8103959;1.792917;0.1327813;-0.4999467;0.05921629;-0.7161857;-0.6697808;1.959598;-0.1525345;0.02713824;-0.3281385;0.0.0.0;10.167.22.1;1;0
我希望它在.csv文件中看起来像这样:
08:57:45.696, 1, 1, 52.33705.........
基本上删除前面的日期,并将分号切换为逗号。我怎么能在python程序中做到这一点,我还没有做过很多解析,所以一些提示会非常好!
提前致谢
答案 0 :(得分:1)
如果每行用双行分隔'\ n \ n'分隔:
import pandas as pd
import io
data = '''\
2014-11-19 08:57:45.696;1;1;52.33705;4.843468;8.319668;20.44;93.05875;6;5;1416383865;0.0806427;-0.4734802;-0.7419281;-16.14367;27.67606;-15.92525;53.06408
52.48165;26;0.04704554;0.9128267;0.4871223;0.1783603;0.2536548;0.6368796;0.07435028;0.8879893;0.4615479;-0.1116289;0.1097959;0.04115437;0.0.0.0;10.167.22.1;1;0
2014-11-19 08:57:46.695;2;2;52.33704;4.843778;8.393764;20.03;92.07;6;5;1416383866;-0.7679138;0.02275085;-1.0784;-22.94859;32.63707;2.281387;63.01468
62.43224;26;-0.2999492;-0.8103959;1.792917;0.1327813;-0.4999467;0.05921629;-0.7161857;-0.6697808;1.959598;-0.1525345;0.02713824;-0.3281385;0.0.0.0;10.167.22.1;1;0'''
file = io.StringIO(data)
# Read data
data = '\n'.join(rows.split(" ")[1].replace('\n',';') for rows in file.read().split('\n\n'))
# Create dataframe
df = pd.read_csv(io.StringIO(data),sep=";", header=None)
df.to_csv("output.csv",sep=',')
答案 1 :(得分:0)
如果日期格式一致,您不需要解析日期,您可以将整个事物视为字符串(根据您的问题,您还没有将其作为日期进行交互)并将其切片向上,然后用逗号替换分号。
s[11:].replace(';', 'c')