有没有办法在 Python 中使用正则表达式连接 DataFrame 列表?

Is there a way to concat a list of DataFrames using regular expression in Python?

我有多个要附加的 DataFrame。我得到了我想要的输出:

bigdf = pd.concat([df1, df2, df3, df4, df5, df6])

这些 DataFrames 使用 Spyder IDE.

存储在我的变量资源管理器中

此过程运行良好,但在全部输入时可能会有点乏味。

但是假设我希望附加的数据帧都具有非常相似的名称,只是用数字后缀分隔。 例如;结果 1、结果 2、结果 3 等...

我想知道,是否有一种方法可以使用单个正则表达式模式附加我想要的所有 DataFrame 以查找 DataFrame 的名称?

正则表达式模式将是:'^outcome' 收集在我的变量资源管理器中找到的所有数据帧的列表,这些数据帧通常具有 'outcome' 前缀。

第一次提问,如有遗漏请指正。

我不熟悉pandas。

但我假设您能够将 pandas 数据帧作为迭代器或可迭代的,

然后你可以使用 re 包进行前缀搜索。

import re

for dFrame in dataframes:
  if re.search( r'^outcome', dFrame.name): # return None if nothing found
    bigdf += pd.concat([dFrame])
    # I'm not sure the pandas syntax, just append the found dataframe

如果我有任何误解,请告诉我。 谢谢

import pandas as pd
import re

outcome1 = pd.DataFrame({'a':[1], 'b':[3]})
outcome2 = pd.DataFrame({'a':[3], 'b':[4]})

bigdf = eval("pd.concat([" + ", ".join(list(filter(lambda x: re.match('^outcome', x) ,dir()))) + "])")