我有两个大数据框,我想做的是制作许多较小的数据框,其中包括第一个数据框和第二个数据框的第一列。我曾经做过一次,但是我正在努力寻找存储所有要产生的数据帧的最佳方法。
这里是一个实例的代码行
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中的每个数据框。再次感谢任何帮助。
您确实可以使用循环将每个数据框附加到列表:
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)
。
您可以使用字典理解
all_data ={df{}.format(x):pd.concat([rxloc,RX.iloc[:,x]],axis=1) for x in range(len(RX.columns))}