Pandas循环提取Excel数据问题:目标列每10行重复
问题原因与解决方法
问题原因
- 循环逻辑错误:
for i in range(10)的写法会让你在循环中重复提取同一行的目标列值(比如固定取第0行),然后重复赋值10次,最终导致每10行重复首值。 - 行索引未递增:如果循环内没有根据迭代变量
i去逐行获取数据,而是固定指向某一行,必然会出现重复取值的情况。
解决方法
- 直接提取整列(推荐):Pandas原生支持整列数据提取,完全不需要循环。直接通过列名或位置索引即可拿到连续数据:
# 通过列名提取 target_col = df['你的目标列名'] # 或通过列位置索引提取(假设目标列是第2列,索引从0开始) target_col = df.iloc[:, 2] - 修正循环逻辑(必要时用):如果因为特殊业务需求必须用循环,要让行索引随
i递增,遍历所有行而非固定10次:result = [] # 获取总行数 total_rows = df.shape[0] for i in range(total_rows): # 逐行提取目标列值 val = df.iloc[i, 目标列索引] result.append(val) # 将结果转为Pandas Series continuous_col = pd.Series(result) - 检查源Excel数据:确认Excel文件中的目标列本身是连续取值的,没有隐藏行、合并单元格或人为重复的异常数据。
内容的提问来源于stack exchange,提问作者Ricky
相关产品推荐
相关产品推荐

