在python中逐行输入时,如何访问每行的每个元素



我有一个制表符分隔的csv文件。我的csv文件:

0.227996254681648   0.337028824833703   0.238163571416268   0.183009231781289   0.085746697332588   0.13412895376826
0.247891283973758   0.335555555555556   0.272129379268419   0.187328622765857   0.085921240923626   0.128372465534807
0.264761012183693   0.337777777777778   0.245917821271498   0.183211905363232   0.080493183753814   0.122786059549795
0.30506091846298    0.337777777777778   0.204265153911403   0.208453197418743   0.0715575291087 0.083682658454807
0.222748815165877   0.337028824833703   0.209714942778068   0.084252659537679   0.142013573559938   0.234672985858848

现在我想输入csv文件中的每一行,对每一行的每个元素做一些事情,然后对下一行做同样的事情,以此类推

我的代码:

lines = []
with open("/path/testfile.csv") as f:
csvReader = csv.reader( f, delimiter="t" )
for row in csvReader:
x=row[0] #access first floating number of each line from csv
y=row[1] #access second floating number of each line from csv
z=row[2] #access third floating number of each line from csv
r=row[3] #access fourth floating number of each line from csv
s=row[4] #access fifth floating number of each line from csv
t=row[5] #access six floating number of each line from csv
#do something else with each element

在这里,我只将print(row[0])包含在for循环中:

lines = []
with open("/path/testfile.csv") as f:
csvReader = csv.reader( f, delimiter="t" )
for row in csvReader:
print(row[0])

但是,当只尝试print(row[0])时,它已经打印出csv文件中的所有值。如何访问python中每一行的每个元素?

不确定您是否熟悉pandas库。你可以使用熊猫,这会简化很多事情。

代码

import pandas as pd
df = pd.read_csv('./data/data.csv', delimiter='t', header=None)
print(df)

输出

0         1         2         3         4         5
0  0.227996  0.337029  0.238164  0.183009  0.085747  0.134129
1  0.247891  0.335556  0.272129  0.187329  0.085921  0.128372
2  0.264761  0.337778  0.245918  0.183212  0.080493  0.122786
3  0.305061  0.337778  0.204265  0.208453  0.071558  0.083683
4  0.222749  0.337029  0.209715  0.084253  0.142014  0.234673

然后,您可以对任何列执行任何所需的操作。示例:

df[0] = df[0]*10    # Multiply all numbers in the 0th column by 10

只需添加另一个循环:

lines = []
with open("/path/testfile.csv") as f:
csvReader = csv.reader( f, delimiter=" " )
for row in csvReader:
for element in row:
do_something_with(element)

我建议看一下pandas库,这是一个很好的起点。

用户指南。它将使您能够更轻松地处理和处理您的数据。

最新更新