[英]I want to append an csv file using python pandas to add an array as new column
[英]Want to append a column in a file without using the Pandas
我有一個文件outfile.txt
,如下所示:
1,2,3,4,0,0.95
1,2,4,4,0,0.81
5,6,3,1,0,0.89
7,6,8,8,0,0.77
6,6,4,9,0,0.88
9,9,9,1,0,0.66
4,3,6,9,0,0.85
1,2,6,7,0,0.61
現在我想要 append 一個額外的 1 到每一行。 所以所需的 output 文件如下所示:
1,2,3,4,0,0.95,1
1,2,4,4,0,0.81,1
5,6,3,1,0,0.89,1
7,6,8,8,0,0.77,1
6,6,4,9,0,0.88,1
9,9,9,1,0,0.66,1
4,3,6,9,0,0.85,1
1,2,6,7,0,0.61,1
我該怎么做? 每當我在谷歌上搜索以尋找解決方案時,我到處都會看到使用 Pandas 提供這種解決方案,但我不想使用它。
由於您的文件是 csv 格式, csv
模塊可以幫助您。 如果您遍歷reader
object,它會為您提供文件中每一行的項目列表,然后只需.append()
即可。
import csv
with open("outfile.txt") as f:
reader = csv.reader(f)
for line in reader:
line.append("1")
print(",".join(line))
如果你有一個類似column
的列,你可以 zip 它與reader
object 和 append 循環中的相應元素:
import csv
column = range(10)
with open("outfile.txt") as f:
reader = csv.reader(f)
for line, n in zip(reader, map(str, column)):
line.append(n)
print(",".join(line))
我打印出來了,你可以把它寫到一個新的文件中。
您可以使用csv
模塊逐行讀寫文件。 reader
object 將迭代輸入文件的行,而writer.writerows
將使用該迭代器。 您只需要一些額外的代碼來添加 1。此示例使用列表生成器來添加額外的列。
import csv
import os
filename = "outfile.txt"
tmp = filename + ".tmp"
with open(filename, newline="") as infile, open(tmp, "w", newline="") as outfile:
csv.writer(outfile).writerows(row + [1] for row in csv.reader(infile))
os.rename(tmp, filename)
只是,逐行遍歷文件並在每行末尾添加,1 :
with open('outfile.txt', 'r') as input:
with open('outfile_final.txt', 'w') as output:
for line in input:
line = line.rstrip('\n') + ',1'
print(line, file=output)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.