我正在从网站中提取数据,并且希望将其存储在数据库中。为此,我想在for循环内创建和删除数据帧。
我尝试创建一个数据帧列表,并使用循环删除每个元素,但这没有用。
tables = [df1,df2,df3]
for table in tables:
del table
它不会删除数据帧,也不会显示任何错误。
我可以使用'del'删除它们,但我需要一个更具扩展性的解决方案。
del df1
del df2
答案 0 :(得分:3)
您可以做的是索引tables
并使用特定索引删除数据框。请注意,由于您是在迭代时从列表中删除元素,为了避免跳过元素而从头开始删除:
for ix in reversed(range(len(tables))):
# do something with tables[ix]
del tables[ix]
答案 1 :(得分:0)
因为在遍历列表时进行删除,实际上是在删除引用。
如果要删除,请尝试使用索引进行访问:
l = len(tables)
for i in range(l):
del tables[0]
或只是弹出:
while tables:
tables.pop(0)
答案 2 :(得分:0)
del
可以采用多个参数:
del df1, df2, df3
但是如果要缩放它,也许可以使用dir()来查看作用域中的变量并删除不需要的变量
for var in dir():
if var in tables:
del var