我将如何在csv文件中的逗号后打印出最后一个值,我想遍历文件并打印出最后一个值:
数据:
containerCss
代码:
object
这只会给我最后一个字符8和1
答案 0 :(得分:2)
使用此:
import csv
with open('output.csv', 'r') as f:
for row in (list(csv.reader(f))):
print(', '.join(row.split(',')[-1])
基本上,您只是在访问该行的最后一个字符。但是您需要使用进行拆分,然后选择最后一个值
答案 1 :(得分:1)
这是因为您要先加入列表,然后再检索该字符串的最后一项,恰好是最后一个字符。尝试像这样解析它:
import csv
with open('output.csv', 'r') as f:
for row in csv.reader(f):
value = float(row[-1])
print(value)
答案 2 :(得分:-1)
在回答问题之前,每个答案。但是,当您的csv文件变大时,这种方法将不是最有效的一种。我建议使用pandas来做到这一点,
import pandas as pd
file = pd.read_csv('output.csv', header=None)
print(file.iloc[:, -1])
输出将是:
0 62.757528
1 42.267051
编辑
为回答评论,我使用以下代码进行了基准测试:
import pandas as pd
import csv
import timeit
def without_pandas():
with open('output.csv', 'r') as f:
for row in csv.reader(f):
value = float(row[-1])
def with_pandas():
file = pd.read_csv('output.csv', header=None)
for row in file.iloc[:, -1]:
value = float(row)
if __name__ == '__main__':
num = 10000
print("Without pandas:", timeit.timeit(
'without_pandas()', number=num,
setup="from __main__ import without_pandas")/num)
print("With pandas:", timeit.timeit(
'with_pandas()', number=num,
setup="from __main__ import with_pandas")/num)
输出为:
Without pandas: 0.012996618213300826
With pandas: 0.012586948527599453
文件大小为751K(6864行),而对于较小的文件,其效率实际上是完全相同的。