【问题标题】:create a list of pandas data frame variable names with similar spelling创建一个拼写相似的 pandas 数据框变量名称列表
【发布时间】:2017-11-21 02:01:53
【问题描述】:

在我的环境中,我列出了几个名称相似的 pandas 数据框。

例如:

  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_')

【问题讨论】:

    标签: python regex list pandas


    【解决方案1】:

    globals() 应该为全局变量返回一个 variable_name:variable_value 的字典。

    如果您想要名称以“df_”开头的已定义变量列表,您可以这样做:

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

    我认为必须有一种更好的方法,而不是全局存储数据帧,并依赖 globals() 来获取它们的变量名。也许将它们全部存储在字典中?:

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

    【讨论】:

    • 加一个答案和建议
    • @L. Alvarez 抱歉,如果我不清楚 - 我不想将数据框存储在列表中......只是列表中数据框的变量名称。 .
    • 我的解决方案将变量名称存储在一个列表中。对 .keys() 的调用从 globals() 返回的 variable_name:variable_value 的字典中提取变量名。
    猜你喜欢
    • 2017-10-22
    • 1970-01-01
    • 2020-09-29
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多