如何根据矩阵维度自动生成对应行列表头?
如何根据矩阵维度自动生成对应行列表头?
嗨,这个需求其实很容易实现,完全不用手动一个个写表头,Pandas可以轻松根据你的矩阵维度自动生成对应的行、列标签,适配任意大小的表格~
我给你一步步拆解实现方法:
先获取表格的行列数:
用Pandas DataFrame的shape属性就能快速拿到行数和列数,shape[0]对应行数,shape[1]对应列数,不管你的矩阵是4x5还是2x3,都能自动识别。自动生成行、列标签:
用Python的列表推导式就能批量生成R1、R2...和C1、C2...格式的标签,比写循环更简洁高效。比如行数是n,就生成从R1到Rn的列表;列数是m,就生成从C1到Cm的列表。给表格设置新的索引和列名:
把生成的标签分别赋值给DataFrame的index(行索引)和columns(列名)就行。
下面是完整的代码示例,直接用你提供的例子来演示:
import numpy as np import pandas as pd # 随机生成指定维度的矩阵 array = np.random.randint(0, 9, size=(4,5)) table = pd.DataFrame(array) # 获取行列数 row_count = table.shape[0] col_count = table.shape[1] # 自动生成行、列标签 row_headers = [f'R{i+1}' for i in range(row_count)] col_headers = [f'C{i+1}' for i in range(col_count)] # 设置行索引和列名 table.index = row_headers table.columns = col_headers print(table)
运行后你就能得到想要的输出:
C1 C2 C3 C4 C5 R1 3 3 5 2 1 R2 1 3 4 2 0 R3 0 2 1 6 9 R4 8 2 7 5 4
如果换成2x3的矩阵,只需要修改size=(2,3),代码会自动生成R1、R2的行标签和C1、C2、C3的列标签,完全不用改其他逻辑,非常灵活~
备注:内容来源于stack exchange,提问作者user23487612
相关产品推荐
相关产品推荐

