簡體   English   中英

在 Python 中使用循環刪除空 dataframe

[英]Delete empty dataframe with loop in Python

我在 Python 中有一系列不同的 DataFrame。 我想檢查它們中的每一個是否為空,然后刪除那些實際上是空的。 我正在嘗試使用一個循環,但實際上沒有刪除任何數據幀,還有那些實際上是空的。 這里是示例,其中df_Adf_Bdf_Cdf_D是我的數據幀,最后一個( df_D )是空的。

df_names = [df_A, df_B, df_C, df_D]
for df_ in df_names:
    if df_.empty: del df_

當然我錯過了一些非常簡單的東西,我希望你能幫助我解決這個(可能有點傻)的問題。

您可以使用 python locals() function 來執行此操作。 我首先將列表中的數據框保存為string

代碼

df_names = ['df_A', 'df_B', 'df_C', 'df_D']
for df_ in df_names:
    if locals()[df_].empty:
        del locals()[df_]

您還可以使用以下代碼檢查您的 dataframe 是否已被刪除:

alldfs = [var for var in dir() if isinstance(eval(var), pd.core.frame.DataFrame)]
for i in alldfs:
    if i[:1] != '_':
        print (i)

上面的代碼片段將返回所有現有的數據幀(不包括 python 內部定義的數據幀)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM