Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将多行文本文件拆分为多行csv文件_Python_Csv_Numpy_Split_Scikit Learn - Fatal编程技术网

Python 将多行文本文件拆分为多行csv文件

Python 将多行文本文件拆分为多行csv文件,python,csv,numpy,split,scikit-learn,Python,Csv,Numpy,Split,Scikit Learn,我有一个文本文件,其中包含以下格式的数据 100157 100157 100157 364207 100157 38848 100157 bradshaw97introduction 100157 bylund99coordinating 100157 dix01metaagent 100157 gray99finding ... ... 我尝试使用以下方法将其转换为scikit可读数据集: datafile = open(filename.txt, 'r') data=[] f

我有一个文本文件,其中包含以下格式的数据

100157  100157
100157  364207
100157  38848
100157  bradshaw97introduction
100157  bylund99coordinating
100157  dix01metaagent
100157  gray99finding
...
...
我尝试使用以下方法将其转换为scikit可读数据集:

datafile = open(filename.txt, 'r')
data=[]
for row in datafile:
    data.append(row.strip().split('\t'))

c1 = open(filename.csv, 'w')
arr = str(data)
c.write(arr)
c.close
然而,在执行这段代码之后,数据将在一行中输出,而我打算以csv格式将数据整齐地按行和列分开,就像Iris数据集那样

我可以得到一些关于如何进行的帮助吗?谢谢。

使用:

输出csv文件:

100157,100157
100157,364207
100157,38848
100157,bradshaw97introduction
100157,bylund99coordinating
100157,dix01metaagent
100157,gray99finding
...

如果我错了,请纠正我,但我认为
scikit可读数据集
只是用
\n
分隔行的空格分隔值

如果是这样,很容易:

假设您有以下文件:

100157  100157
100157  364207
100157  38848
100157  bradshaw97introduction
100157  bylund99coordinating
100157  dix01metaagent
100157  gray99finding
由制表符分隔

您可以轻松地将其转换为以空格分隔的新行分隔值:

with open('/tmp/test.csv', 'r') as fin, open('/tmp/test.out', 'w') as fout:
    data=[row.strip().split('\t') for row in fin]
    st='\n'.join(' '.join(e) for e in data)
    fout.write(st)

print data  
# [['100157', '100157'], ['100157', '364207'], ['100157', '38848'], ['100157', 'bradshaw97introduction'], ['100157', 'bylund99coordinating'], ['100157', 'dix01metaagent'], ['100157', 'gray99finding']]
print st   
100157 100157
100157 364207
100157 38848
100157 bradshaw97introduction
100157 bylund99coordinating
100157 dix01metaagent
100157 gray99finding

请告诉我们结果应该是什么样子。那太快了!!非常感谢。@falsetru
line.split()
不够吗?@cdhagmann,如果数据中没有空格,就可以了。但如果有空间,它会在错误的地方分裂。
with open('/tmp/test.csv', 'r') as fin, open('/tmp/test.out', 'w') as fout:
    data=[row.strip().split('\t') for row in fin]
    st='\n'.join(' '.join(e) for e in data)
    fout.write(st)

print data  
# [['100157', '100157'], ['100157', '364207'], ['100157', '38848'], ['100157', 'bradshaw97introduction'], ['100157', 'bylund99coordinating'], ['100157', 'dix01metaagent'], ['100157', 'gray99finding']]
print st   
100157 100157
100157 364207
100157 38848
100157 bradshaw97introduction
100157 bylund99coordinating
100157 dix01metaagent
100157 gray99finding