Python关于Pandas的iterrows、itertuples等遍历表格时读取不到第一行的问题

一、问题原因

df.iterrows() 是用来遍历 Pandas DataFrame 的方法,它会把 DataFrame 中的每一行转换成一个元组,其中第一个元素是行号,第二个元素是该行的数据。行号从 0 开始。

在使用 df.iterrows() 遍历 DataFrame 的时候发现表格第二行被当成了第0行,这是因为的DataFrame 中的第一行是列名,而不是数据

例如,假设你的表格是这样的:

第1行表头:A  B  C
第2行:1  2  3
第3行:4  5  6
第4行:7  8  9

经过Pandas读取表格后的DataFrame会变成:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

如果你使用 df.iterrows() 来遍历这个 DataFrame,你会得到以下的结果:

for index, row in df.iterrows():
    print(index, row)

#打印结果
#行号    表格内容
  0        1
  1        2
  2        3

  3        4
  4        5
  5        6

  6        7
  7        8
  8        9    

可以看到,就是DataFrame在转换时把表格第一行当成了列名,所以我们下意识想遍历表格所以内容时就无法读取到表格的第一行。

二、解决办法:

在读取表格的时候指定header为None

#header=None参数表示不将Excel文件中的任何行作为列名,而是将数据的第一行作为数据行处理。

df = pd.read_csv('your_file.csv', header=None)

df = pd.read_excel('your_file.xlsx',header=None)

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值