You need to enable JavaScript to run this app. 如何使用Python Pandas访问CSV文件的倒数第二行?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Pandas访问CSV文件的倒数第二行?

取CSV倒数第二行的实现方法

基础取数规则

pandas的iloc方法支持负索引倒序提取行,你现有用iloc[-1:,:]取最后一行的写法是符合规则的,对应取倒数第二行只需调整索引值:

  • 负索引映射:-1对应最后1行,-2对应倒数第2行
  • 为保持和你现有代码一致的二维DataFrame结构,取数时统一用切片形式:
    • 取最后一行代码:file1.iloc[-1:,:]
    • 取倒数第二行代码:file1.iloc[-2:-1,:]
      注意 不要直接写file1.iloc[-2],这种不带切片的写法会把单行数据压缩为一维Series,后续按列索引取值时会出现不匹配报错。

适配需求的判断逻辑

针对“最后一行目标列为空时自动切换取倒数第二行”的需求,推荐直接对原始值做空值判断,比靠格式化后的字符串匹配'nan'更稳定,对应适配你现有代码的实现如下:

# 初始化默认取最后一行的数据子集
target_data = file1.iloc[-1:, :]
# 判断目标列(第4列,索引从0开始计数)是否为空
if pd.isna(target_data.iloc[0, 4]):
    # 最后一行目标值为空时,替换为取倒数第二行数据
    target_data = file1.iloc[-2:-1, :]

# 后续取值逻辑直接替换原来的df1即可
Austria_date = target_data.iloc[:, 1]
Austria_cum = target_data.iloc[:, 4].map('{:,}'.format)

常见问题提醒

  • 不要用字符串匹配判断空值:你当前将数值列空值格式化后判断是否等于'nan'的写法,在列存在文本内容恰好为'nan'、或空值为其他类型的场景下会出现误判,直接用pd.isna()判断原始值是最可靠的方式。
  • 取单行时必须保留切片写法:如果丢掉切片直接写iloc[-2],得到的一维结构和你原本适配二维DataFrame的取值逻辑不兼容,会直接触发索引错误。

内容的提问来源于stack exchange,提问作者JohnReese23487

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 17:06:03