【发布时间】:2014-10-29 13:39:36
【问题描述】:
我在 python 中遍历 50 个文件,并将它们分别转储到 pandas 数据帧中。然后从每个数据帧中,我根据原始数据帧中特定字段中的值创建三个新数据帧。这三个新框架具有新名称,其中包含它们被过滤的值。
它有效,耶!我得到了我所有的数据框!
问题是,我正在使用 global() 调用创建这些数据帧,如果不将每个单独的数据帧名称显式键入内核,我不知道如何访问它们。
你可能会问,我为什么要这样做?
好吧,例如,我想抓取所有以“cd”结尾的数据帧,并将它们附加(全部合并)到最终数据帧中。我不想显式调用所有 50 个。我想遍历数据框列表来完成这项任务。
关于如何完成此操作或修改代码的任何建议?
我不熟悉 iPython 的这些更密集的流程,所以随便改吧。
filelist = os.listdir()
sum_list = ['CAKE', 'TWINKIES', 'DOUGHNUTS', 'CUPCAKES']
for f in filelist:
state = re.match('((\w+){2})\_', f)
state_df = str(state.group(1)) + '_df'
data = pd.read_csv(f, low_memory = False)
df = pd.DataFrame(data)
for x in sum_list:
sdo = state_df + '_' + x.lower()
globals()[sdo] = pd.DataFrame(df.loc[df['summary_level'] == x])
【问题讨论】:
标签: python-3.x pandas global-variables