2017-06-19 57 views
1

在我的環境中,我有一個名稱相似的幾個熊貓數據框的列表。創建一個帶有類似拼寫的熊貓數據框變量名稱列表

例如:

import pandas as pd 
    import numpy as np 
df_abc = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD') 
df_xyz = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD') 
df_2017 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD') 
... potentially others 

我想創建列表自動數字數據幀是在我的環境,並將其拉入名單動態。

list_of_dfs = ['df_abc','df_xyz','df_2017', 'df_anything else'] 
    # except done dynamically. In this example anything beginning with 'df_' 
# list_of_dfs = function_help(begins with 'df_') 

回答

1

globals()應該爲全局變量返回一個variable_name:variable_value字典。

如果你想定義的變量與開始與人名單「DF_」你可以這樣做:

list_of_dfs = [variable for variable in globals().keys() 
       if variable.startswith('df_')] 

我認爲必須有比存儲在全球的dataframes一個更好的辦法,依靠全局( )來獲取他們的變量名稱。也許將它們全部存儲在字典中:

dataframes = {} 
dataframes['df_1'] = pd.DataFrame() 
dataframes['df_2'] = pd.DataFrame() 

list_of_dfs = dataframes.keys() 
+0

加一個答案和建議 – piRSquared

+0

@ L. Alvarez對不起,如果我不清楚 - 我不想將數據幀存儲在列表中...只是列表中數據幀的變量名稱。 。 – runningbirds

+0

我的解決方案將變量名稱存儲在列表中。對.keys()的調用從globals()返回的variable_name:variable_value的字典中提取變量名稱。 –

相關問題