【发布时间】:2019-10-17 01:12:21
【问题描述】:
我有一个迭代器,我想在迭代器上执行函数,直到迭代器为空。我下面的方法是正确的还是有更好的做法?
import pandas as pd
df_iter = pd.read_csv(file_path, chunksize=some_chunksize_value)
def some_function(data):
try:
do sth with data.__next__()
some_function(data)
except StopIteration:
do sth here
return True
some_function(df_iter )
【问题讨论】:
-
next(df_iter)也许,也不确定pd.read_csv是否给你一个迭代器 -
只需使用循环 (
for item in df_iter) 迭代df_iter,您不需要为此进行递归。 -
它给了我一个带有块大小的迭代器。是的,下一个或 __next__() 但如何检查迭代器是否为空完成执行?
-
我想避免 for 循环或 if 语句或任何其他嵌套逻辑。
-
“我想避免 for 循环”。为什么?没有它们,几乎不可能编写任何重要的程序。而且递归不是比循环更嵌套吗?
标签: python pandas csv iterator