如上所述,我在尝试创建一个脚本时遇到了一些问题,该脚本将:
到目前为止,我已经能够解析原始文件,并为原始文件中的每个唯一值创建空文件。但之后我就卡住了。
file = open("path_to_document", 'rt')
Uniquelist = []
i = 0
for line in file:
parsedLine = line.strip().split('\t')
val = parsedLine[0]
if val not in Uniquelist:
Uniquelist.append(val)
for i in Uniquelist:
outputfile = open('%s.txt' % i, 'a')
到目前为止,这就是我所拥有的,它是有效的,但它完全没有第三部分。我不确定使其工作所需的逻辑或语法
发布于 2018-08-22 05:29:34
将第一列中的值存储在字典中,而不是列表中。循环遍历文件中的各行时,检查该值是否已在字典中(如果字典中的值已存在),如果没有,则创建一个新条目,将第一个值作为关键字,其余的值(parsedLine1:)作为值。如果是,只需将其余的值添加到该条目。
然后,您可以将该字典保存为文本文件(或者,如果可以,json将使其更容易)。
是的,可能还有其他库可以做你想做的事情,但是对于这么简单的事情,我不认为有必要添加外部依赖项。
发布于 2018-08-22 05:51:37
您可以按如下方式使用pandas
:
import pandas as pd
# read from the `tsv` file:
df = pd.read_csv('your_file.tsv', sep='\t')
# group-by unique values in the first column:
gb = df.groupby(0)
# iterate over the unique values in the first column and write the cross-section data to a file with the corresponding name
for value, df_ in gb:
df_.to_csv(
'value_{}.csv'.format(value),
index=False
)
https://stackoverflow.com/questions/51956788
复制相似问题