如何在Python中实现矩阵拼接以及矩阵指定部分的拼接?
解决方案:Pandas矩阵拼接(整体/选定部分)
针对你提出的两个Pandas矩阵拼接需求,我结合你已有的代码给出具体实现方法:
一、整体矩阵拼接
你已经将两个CSV文件读入并转置为main_transposed和wave_transposed,要把整个wave_transposed拼接到main_transposed上,核心用pd.concat()函数,需根据拼接方向设置axis参数:
1. 列方向拼接(左右拼接)
如果要把两个矩阵按列合并(横向拼接),设置axis=1:
import pandas as pd # 你的现有代码 main = pd.read_csv('C:/Users/Jonas/Desktop/testfile/testing.csv', header=None) main_transposed = main.T wave_file = pd.read_csv('C:/Users/Jonas/Desktop/testfile/nxt_Test.csv', header=None) wave_transposed = wave_file.T # 列方向整体拼接 combined_cols = pd.concat([main_transposed, wave_transposed], axis=1) print(combined_cols)
2. 行方向拼接(上下拼接)
如果要按行合并(纵向拼接),设置axis=0:
# 行方向整体拼接 combined_rows = pd.concat([main_transposed, wave_transposed], axis=0) print(combined_rows)
二、选定部分矩阵拼接
如果只需要拼接wave_transposed的某一部分,可先用iloc(按位置索引)或loc(按标签索引)提取目标区域,再执行拼接:
示例1:提取wave_transposed的前2列,与main_transposed列拼接
# 提取wave_transposed的前2列(所有行,第0到1列) wave_selected_cols = wave_transposed.iloc[:, 0:2] # 列方向拼接选定部分 combined_selected_cols = pd.concat([main_transposed, wave_selected_cols], axis=1) print(combined_selected_cols)
示例2:提取wave_transposed的前3行,与main_transposed行拼接
# 提取wave_transposed的前3行(第0到2行,所有列) wave_selected_rows = wave_transposed.iloc[0:3, :] # 行方向拼接选定部分 combined_selected_rows = pd.concat([main_transposed, wave_selected_rows], axis=0) print(combined_selected_rows)
补充说明
iloc[a:b, c:d]中,a:b表示行的范围(左闭右开),c:d表示列的范围;如果要选单行/单列,比如第1行可以写iloc[1, :],第2列写iloc[:, 2]。- 如果你的矩阵有自定义索引,也可以用
loc按索引标签选择区域,比如wave_transposed.loc['row1':'row3', 'colA':'colC']。
内容的提问来源于stack exchange,提问作者Jonas Freiheit
相关产品推荐
相关产品推荐

