如何将Pandas DataFrame按每3行一组重新排列?
实现DataFrame行列重排的方法
针对你给出的需求,最简单的实现方式是利用numpy的reshape方法将原单列数据重新组织成目标的3行3列结构,具体代码如下:
import pandas as pd import numpy as np data4 = [[45], [285], [256], [55], [360], [213], [65], [435], [368]] df4 = pd.DataFrame(data4) # 重塑为3行3列的DataFrame df_reshaped = pd.DataFrame(df4.values.reshape(3, 3)) print(df_reshaped)
补充说明
- 原DataFrame的
values属性会返回一个numpy数组,调用reshape(3, 3)就能把原本9个元素的一维数组转换成3×3的二维数组 - 如果是其他场景,也可以动态计算行数或列数,比如固定列数为3时,行数可以用
len(df4) // 3来获取,避免硬编码数字的局限性
内容的提问来源于stack exchange,提问作者shoggananna
相关产品推荐
相关产品推荐

