如何删除列表中的所有熊猫数据框?

时间:2019-11-06 14:14:48

标签: python pandas

我正在从网站中提取数据,并且希望将其存储在数据库中。为此,我想在for循环内创建和删除数据帧。

我尝试创建一个数据帧列表,并使用循环删除每个元素,但这没有用。

tables = [df1,df2,df3]

for table in tables:
    del table

它不会删除数据帧,也不会显示任何错误。

我可以使用'del'删除它们,但我需要一个更具扩展性的解决方案。

del df1
del df2

3 个答案:

答案 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