我有以下格式file1.txt
这种格式(完全按照我的说法显示):
3612 11.4 21.5 1.3 cat3 10469 11447 9239174 - Smith David
484 25.1 13.2 0.0 cat3 11505 11675 9238946 - John Mary
239 29.4 1.9 1.0 cat3 11678 11780 9238841 + Weiz Parker
318 23.0 3.7 0.0 cat3 15265 15355 9235266 + Cohen Charles
18 23.2 0.0 2.0 cat3 15798 15849 9234772 + Lopez Beth
463 1.3 0.6 1.7 cat3 10001 10468 9240153 + Brown Charlie
我想立即将其加载到带有
的Pandas DataFrame中import pandas as pd
df = pd.DataFrame("file1.txt")
但这给了我一个只有一列的数据框。
因此,我尝试使用Python将此文件解析为.csv
。问题是这不是一个“常量”分隔符,即它不是一个标签。
import csv
input_text = csv.reader(open("file1.txt", "r"), delimiter = "\t")
output_csv = csv.writer(open("file1.csv", 'w'))
output_csv.writerows(input_text) # this should write a csv "file1.csv"
然而,这给出了相同的结果。分隔符delimiter = ""
也不起作用。
如何将此文本文件解析为csv格式?我可以用Python做到这一点吗? (或者我需要awk吗?)我应该“跳过”中间csv步骤并尝试在熊猫中完全执行此操作吗?
任何帮助表示赞赏!
答案 0 :(得分:2)
将pd.read_csv()与分隔符一起使用并指定列名称,并指定csv文件中不包含列标题。
In [24]: pd.read_csv("file1.txt", header=None, names=[chr(i) for i in range(65, 75)], sep="\s+")
Out[24]:
A B C D E F G H I J
3612 11.4 21.5 1.3 cat3 10469 11447 9239174 - Smith David
484 25.1 13.2 0.0 cat3 11505 11675 9238946 - John Mary
239 29.4 1.9 1.0 cat3 11678 11780 9238841 + Weiz Parker
318 23.0 3.7 0.0 cat3 15265 15355 9235266 + Cohen Charles
18 23.2 0.0 2.0 cat3 15798 15849 9234772 + Lopez Beth
463 1.3 0.6 1.7 cat3 10001 10468 9240153 + Brown Charlie