如何通过行号和列号遍历Pandas DataFrame(含列名不含索引)
解决DataFrame按行号列号遍历的问题
你遇到的KeyError: 0是因为DF[row]是按索引值提取行,而非行的位置序号。如果你的DataFrame索引不是从0开始的连续整数,就会找不到对应索引,触发错误。
要实现仅通过行号、列号遍历DataFrame(包含列名、排除索引),可以用pandas的iloc方法——它专门用于按整数位置访问数据,不受索引影响:
步骤1:先打印列名(按列号顺序)
print("\t".join(DF.columns))
步骤2:按行号+列号遍历所有元素
# 遍历每一行的位置序号 for row_num in range(len(DF)): # 遍历每一列的位置序号 for col_num in range(len(DF.columns)): # iloc[row_num, col_num] 定位到对应位置的元素 print(DF.iloc[row_num, col_num], end="\t") print() # 每行结束后换行
补充说明
iloc[row_num, col_num]中的row_num是从0开始的行号,col_num是从0开始的列号,完全对应数据的物理位置。- 如果想更高效地遍历整行,可以先通过
DF.iloc[row_num, :]获取整行数据,再按列号提取元素,效果和上面一致。
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

