擅长:python、mysql、java
<p>对于迭代合并,考虑在列表中存储数据帧,然后使用<code>reduce()</code>运行链合并。下面通过Excel文件从列表理解创建一个数据帧列表,其中<code>enumerate()</code>用于将<em>Col2</em>依次重命名为<em>df1</em>,<em>df2</em>等</p>
<pre><code>from functools import reduce
...
dfList = [pd.read_excel(xl).rename(columns={'Col2':'df'+str(i)})
for i,xl in enumerate(["set1.xlsx", "set2.xlsx", "set3.xlsx",
"set4.xlsx", "set5.xlsx", "set6.xlsx"])]
df = reduce(lambda x,y: pd.merge(x, y, on=['Col1'], how='outer'), dfList)
# Col1 df1 df2
# 0 XYZ 41235.0 43782.0
# 1 OAIS 15123.0 NaN
# 2 ABC 48938.0 33347.0
# 3 KFJ NaN 21493.0
# 4 SHIZ NaN 31299.0
</code></pre>
<p>或者,使用<code>pd.concat</code>并在需要将<code>Col1</code>设置为索引的地方水平连接数据帧:</p>
^{pr2}$