遍历Pandas DataFrame全部列后如何回到首列从j+512位置重新遍历
实现方案
你可以在外层加一个偏移量j的循环,每次遍历完全部列后将j增加512,直到剩余数据长度不足512就停止循环,示例代码如下:
import pandas as pd # 先确认所有列长度一致,取第一列的长度作为总长度 col_length = len(df.iloc[:,0]) # 最大j值要满足j+512 <= 列长度,否则取不到两个连续256的窗口 max_j = col_length - 512 j = 0 while j <= max_j: # 逐列遍历处理 for column in df: col_one_list = df[column].tolist() mav1 = mav(col_one_list[j:j+256]) mav2 = mav(col_one_list[j+256:j+512]) # 此处可补充mav1、mav2的后续处理逻辑 # 处理完所有列后j偏移512,下一轮从新位置开始重新遍历所有列 j += 512
逻辑说明
- 外层用
while循环控制偏移量j的递增,每次步长固定为512,直到数据不足自动停止 - 内层保持原有逐列遍历的逻辑,每一轮j对应的所有列处理完成后,再偏移j进入下一轮全列遍历
- 如果你的数据列长度不一致,可以提前对所有列做截断或者补全处理,避免索引越界问题
内容的提问来源于stack exchange,提问作者Debbie
相关产品推荐
相关产品推荐

