遍历DataFrame生成列累加子DataFrame,解决空表与多余索引问题
问题根源
- 空DataFrame输出:
enumerate()默认从0开始计数,第一次循环时i=0,x.iloc[:,:0]会选择前0列,返回空表 - 打印带索引:pandas默认输出DataFrame时会携带行索引,是框架默认规则
修复代码
调整遍历起始值,打印时调用to_string()方法关闭索引显示即可:
# 写法1:调整enumerate起始编号 for i, _ in enumerate(x, start=1): data = x.iloc[:, :i] print(data.to_string(index=False)) # 写法2:直接遍历列数范围,逻辑更清晰 for col_num in range(1, len(x.columns)+1): data = x.iloc[:, :col_num] print(data.to_string(index=False))
如果需要留存生成的所有DataFrame后续使用,可以用列表存储:
result_dfs = [] for col_num in range(1, len(x.columns)+1): current_df = x.iloc[:, :col_num] result_dfs.append(current_df) print(current_df.to_string(index=False))
内容的提问来源于stack exchange,提问作者Omer Davidi
相关产品推荐
相关产品推荐

