Python 连接数据帧(如果存在)

问题描述 投票:0回答:1

我有几个数据帧需要连接在一起。这些数据帧包含我从 API 获得的结果并进行了一些编辑。所有数据框都有相同的列,我真正需要做的就是将它们附加在一起。我面临的问题是,根据 API 的原始输出,表可能并不总是存在。

pd.concat(df1+df2+df3…) 按我想要的方式工作,但是是否可以动态生成数据帧列表(如果存在)?潜在的数据帧名称始终属于一组,因此我可以迭代约 12 个潜在名称的静态列表。我遇到的最大问题不是找到一种方法来做到这一点,而是能够使用我在 pd.concat() 中生成的列表。到目前为止,我只能将表名称列表连接到数据框中,而不能连接它们包含的数据。有没有更好的方法来思考这个问题或者有更好的函数来使用?

python list variables dynamic concatenation
1个回答
0
投票

您可以使用

locals()
了解更多)函数获取函数中局部变量的列表并访问它们的值:

import pandas as pd

# List of DFs names
potential_names = ['df1', 'df2', 'df3', 'df4', 'df5', 'df6', 'df7', 'df8', 'df9', 'df10', 'df11', 'df12']

# Iterate through the DFs in the local scope thanks to locals()
existing_dfs = [locals()[name] for name in potential_names if name in locals()]

result = pd.concat(existing_dfs, ignore_index=True)
© www.soinside.com 2019 - 2024. All rights reserved.