我正在尝试将多个数据帧连接在一起。这些数据框的名称列表存储在另一个名为companies
的数据框中,该数据框显示在下面。
>>> companies
16: Symbols
0 TUES
1 DRAM
2 NTRS
3 PCBK
4 CRIS
5 PERY
6 IRDM
7 GNCMA
8 IBOC
我的目标是在列表中执行以下操作:joined=TUES.join(DRAM)
然后joined=joined.join(NTRS)
依此类推。我如何才能引用数据框Symbols
的{{1}}列的元素才能实现此目标?
非常感谢提前!
答案 0 :(得分:0)
您可以定义一个空DataFrame
并将所有其他数据框附加到其中。请参阅以下示例:
combined_df = pandas.DataFrame()
for df in other_dataframes:
combined_df = combined_df.append(df)
答案 1 :(得分:0)
使用pd.concat,它用于合并dfs列表:
因此,对于您的示例,只需将值转换为列表然后连续:
joined = pd.concat(list(companies['Symbols']), axis=1)
示例:
In [4]:
import pandas as pd
import numpy as np
df = pd.DataFrame({'a':np.random.randn(5), 'b':np.random.randn(5)})
df1 = pd.DataFrame({'c':np.random.randn(5), 'd':np.random.randn(5)})
df2 = pd.DataFrame({'e':np.random.randn(5), 'f':np.random.randn(5)})
df_list=[df,df2,df1]
df_list
Out[4]:
[ a b
0 0.143116 1.205407
1 -0.430869 1.429313
2 0.059810 0.430131
3 2.554849 -1.450640
4 -1.127638 0.715323
[5 rows x 2 columns], e f
0 0.658967 1.150672
1 0.813355 -0.252577
2 0.885928 0.970844
3 0.519375 -1.929081
4 -0.217152 0.907535
[5 rows x 2 columns], c d
0 -1.375885 1.422697
1 -0.870040 0.135527
2 -0.696600 1.954966
3 0.494035 -0.727816
4 -0.367156 -0.216115
[5 rows x 2 columns]]
In [8]:
# now concatenate the list of dfs, by column
pd.concat(df_list,axis=1)
Out[8]:
a b e f c d
0 0.143116 1.205407 0.658967 1.150672 -1.375885 1.422697
1 -0.430869 1.429313 0.813355 -0.252577 -0.870040 0.135527
2 0.059810 0.430131 0.885928 0.970844 -0.696600 1.954966
3 2.554849 -1.450640 0.519375 -1.929081 0.494035 -0.727816
4 -1.127638 0.715323 -0.217152 0.907535 -0.367156 -0.216115
[5 rows x 6 columns]