Python 3.x 在Python中使用循环删除空数据帧

Python 3.x 在Python中使用循环删除空数据帧,python-3.x,pandas,loops,dataframe,Python 3.x,Pandas,Loops,Dataframe,我有一系列不同的Python数据帧。我想检查它们是否都是空的,然后删除那些实际上是空的。我尝试使用一个循环,但没有数据帧被实际删除,也没有数据帧是空的。这里的示例中,df_A、df_B、df_C和df_D是我的数据帧,最后一个(df_D)是empy 当然,我遗漏了一些非常简单的问题,我希望您能帮助我解决这个(可能有点愚蠢)问题。您可以使用pythonlocals()函数来完成此操作。我首先将数据帧保存在一个列表中,作为string: 代码 df_name=['df_A','df_B','df_C

我有一系列不同的Python数据帧。我想检查它们是否都是空的,然后删除那些实际上是空的。我尝试使用一个循环,但没有数据帧被实际删除,也没有数据帧是空的。这里的示例中,df_A、df_B、df_C和df_D是我的数据帧,最后一个(df_D)是empy


当然,我遗漏了一些非常简单的问题,我希望您能帮助我解决这个(可能有点愚蠢)问题。

您可以使用python
locals()
函数来完成此操作。我首先将数据帧保存在一个列表中,作为
string

代码

df_name=['df_A','df_B','df_C','df_D']
对于df_名称中的df_:
如果局部变量()[df_389;].为空:
del locals()
您还可以使用以下代码检查您的数据帧是否已被删除:

alldfs=[dir()中的var的var如果是instance(eval(var),pd.core.frame.DataFrame)]
对于所有DFS中的i:
如果我[:1]!='\u':
印刷品(一)

上面的代码片段将返回所有现有的数据帧(不包括python内部定义的数据帧)

要从列表中删除数据帧还是要删除数据帧本身?数据帧本身请添加纯python标记
del
在这里帮不了你。你有一个系列或列表吗?非常感谢@Gary的回复。它工作得很好!
df_names = [df_A, df_B, df_C, df_D]
for df_ in df_names:
    if df_.empty: del df_