如何将一维列表按固定元素数切分后按行填充Pandas DataFrame
具体实现步骤
- 第一步:清理列名中的制表符
你之前提取的列名带有\t前缀,先批量清理:# 去除所有列名前的制表符 clean_columns = [col.strip("\t") for col in column_name] - 第二步:将一维values列表转换为25列的二维结构
总长度16350刚好能被25整除,得到654行数据,两种实现方式可选:- 方式1:numpy高效实现(推荐,处理大数据速度更快)
import numpy as np import pandas as pd # reshape默认按行填充,完全匹配每25个值为一行的需求 reshaped_data = np.array(values).reshape(-1, 25) target_df = pd.DataFrame(reshaped_data, columns=clean_columns) - 方式2:纯Python实现,无需额外依赖numpy
import pandas as pd # 按步长25切片原列表,每片为一行数据 reshaped_data = [values[i:i+25] for i in range(0, len(values), 25)] target_df = pd.DataFrame(reshaped_data, columns=clean_columns)
- 方式1:numpy高效实现(推荐,处理大数据速度更快)
- 第三步:结果验证
生成后可以通过以下代码确认结果符合预期:# 查看DataFrame形状,预期输出(654, 25) print(target_df.shape) # 校验行起始值,第一行首值应为'1654786811.282628',第二行首值应为'1654786811.381790' print(target_df.iloc[0, 0]) print(target_df.iloc[1, 0])
注意:以上两种重塑方式都是按原列表顺序逐行填充,不会出现值错位的问题,完全匹配你描述的填充规则。
内容的提问来源于stack exchange,提问作者thaclone
相关产品推荐
相关产品推荐

