具有10000行的CSV文件。必须将一行放到函数中并对其进行处理。这样,它应该继续进行直到完成1万行。
例如:
print(abcd)使我获得1万行
<Grid>
<Grid xs={12} md={7}>
Hi there!
</Grid>
<Grid xs={12} md={5}>
John Doe!
</Grid>
</Grid>
将第一行放在此函数中进行处理
1264984
8765132
654651321
......
......
......
返回结果
下一步,转到第二行
def main():
16541+(first row)
就像它应该持续到10行完成
答案 0 :(得分:1)
您可以在chunksize
read_csv函数中使用pandas
选项。
chunksize
指定一次读取的行数。因此,通过将其设置为1,您可以实现逐行处理。
import pandas as pd
chunksize = 1
for chunk in pd.read_csv(filename, chunksize=chunksize):
do_something(chunk)
print(111+chunk["col1"])
在这种情况下,do_something
可以是您要调用的任何函数。还要注意,在for-loop
的每个循环中,chunk
是一个pandas
数据帧,因此您可以使用pandas
的所有现有功能。
答案 1 :(得分:0)
假设由于某种原因您更喜欢逐行阅读而不使用pandas
,则可以执行以下操作:
import csv
def main(num):
return 16541+num
dataset=list()
with open('.yourcsv.csv', 'r') as f:
df=csv.reader(f, delimiter=",")
for row in df:
#following your example:
main(row[0].astype(int)) #assuming, as in your example, that you only have one element per row
#alternatively you can also create a dataset by appending the rows iteratively
dataset.append(row)
当然,您首先需要定义函数main()
并使其接受一个输入
def main(num):
return 16541+num
该函数接受一个输入,我们在整个函数中将其标识为num
。当我们插入变量row
作为输入时,Python的实际作用是:
main(num=row)
因此,num
是通过为其分配变量row
来创建的