在以“*”结尾的数据帧名称上迭代连接数据帧

concatenate datframes iteratively on dataframe names that ends with '*'

例如,假设我在当前实例中有几个数据帧:

alldfs = [var for var in dir() if isinstance(eval(var), pd.core.frame.DataFrame)]

输出: ['df', 'df_01_W', 'df_01_W_pvt', 'df_01_X', 'df_01_X_pvt', 'df_02_W', 'df_02_W_pvt', 'df_03', 'df_03_pvt', 'df_04_W', 'df_04_W_pvt', 'df_04_X', 'df_04_X_pvt']

我只想在一个唯一的 df 中迭代地连接名称以“_pvt”结尾的数据帧。 , 我将连接:df_01_W_pvt、df_01_X_pvt、df_02_W_pvt、df_03_pvt、df_04_W_pvt、df_04_X_pvt

这可以使用以下命令轻松完成:

merged = pd.concat([df_01_W_pvt, df_01_X_pvt, df_02_W_pvt, df_03_pvt, df_04_W_pvt, df_04_X_pvt], sort=False)

但我想知道如何在以“_pvt”结尾的数据帧名称上迭代连接数据帧。

如果我能看到你的亮点,那将不胜感激。

在此先致谢并致以最诚挚的问候

这样的怎么样?

new_df = pd.concat([globals()[x] for x in alldfs if x.endswith('_pvt')])