加入 2 个数据框后命名多个 pandas 数据框的方法

Posted

技术标签:

【中文标题】加入 2 个数据框后命名多个 pandas 数据框的方法【英文标题】:Ways to name multiple pandas datafreames after joining 2 dataframes 【发布时间】:2020-04-28 02:57:29 【问题描述】:

我有两个大数据框,我想做的是制作许多较小的数据框,这些数据框由第一个数据框和第二个数据框的第一列组成。我已经这样做了一个实例,但是我正在努力寻找存储所有要生成的数据帧的最佳方法。

这是一个实例的代码行

test=pd.concat([rxloc,RX.iloc[:,0]],axis=1)

rxloc 是我的第一个数据帧,RX 是我的第二个数据帧

这很好用,但我需要在 1377 列上执行此操作(来自第二个数据帧)。我可以生成一个循环来执行该过程,但是我在如何简单有效地命名循环中的所有新数据帧方面遇到了麻烦。我对 python 和 pandas 还是很陌生,所以非常感谢任何帮助。

更新:这个最初的问题已经得到解答,但是我现在想通过将另一个数据帧附加到由这行代码创建的数据帧来重复这个过程。

对于范围内的 i(len(list(RX))): all_dfs.append(pd.concat([rxloc,RX.iloc[:,i]],axis=1))

我在这里的适当循环遇到了一些问题,我想再次将一列数据帧 2 添加到列表 all_dfs 中的每个数据帧。再次非常感谢任何帮助。

【问题讨论】:

您可以使用 (key, vale)=(df_name,df) 存储到dictionary 【参考方案1】:

您确实可以使用循环将每个数据帧附加到列表中:

all_dfs = []
for i in range(len(list(RX))):
    all_dfs.append(pd.concat([rxloc,RX.iloc[:,i]],axis=1))

列表all_dfs 中的每个值都是不同的数据框。此外,all_dfs 中数据帧的索引值将与RX 中列的位置相匹配(以防您需要在将来进行某种参考)。另外,我使用range(len()) 而不是简单的list(RX),以防有相同名称的列。

【讨论】:

谢谢,这正是我想要做的 干杯,很高兴能提供帮助。【参考方案2】:

你可以使用字典理解

all_data =df.format(x):pd.concat([rxloc,RX.iloc[:,x]],axis=1) for x in range(len(RX.columns))

【讨论】:

以上是关于加入 2 个数据框后命名多个 pandas 数据框的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pandas 中按年和月加入 2 个数据框?

加入/合并两个 Pandas 数据框并将列用作多索引

Pandas 结合 2 个数据框并覆盖值

在列表中创建 Spark 数据框后如何使用它们?

使用 pandas 重命名数据框列中的元素

在具有不同列名的pandas中连接2个数据帧[重复]