如何用for循环横向拼接2个以上的Pandas DataFrame?
如何横向拼接for循环中生成的多个Pandas DataFrame?
当然可以,而且推荐先把循环里生成的DataFrame统一收集到一个列表中,再用Pandas的concat()函数一次性完成横向拼接,这样比循环里逐次拼接效率更高。
具体步骤:
- 初始化一个空列表,用于存放循环生成的所有DataFrame
- 在for循环中,每生成一个DataFrame就添加到这个列表里
- 循环结束后,使用
pd.concat(),指定axis=1参数实现横向拼接
示例代码:
import pandas as pd # 初始化空列表 df_list = [] # 模拟for循环生成多个DataFrame for i in range(3): # 生成示例DataFrame df = pd.DataFrame({'col_{}'.format(i): [1, 2, 3]}) df_list.append(df) # 横向拼接所有DataFrame combined_df = pd.concat(df_list, axis=1) print(combined_df)
注意事项:
- 如果各个DataFrame的索引不一致,拼接后会出现缺失值(NaN),可以根据需求设置
ignore_index=True重置索引,或者提前统一所有DataFrame的索引 - 如果需要给拼接后的结果添加区分标识,可以在生成DataFrame时给列名加上前缀/后缀,避免列名重复导致的问题
内容的提问来源于stack exchange,提问作者Zlatan
相关产品推荐
相关产品推荐

