【问题标题】:TypeError when using substring function in Python 3在 Python 3 中使用子字符串函数时出现 TypeError
【发布时间】:2015-03-30 17:59:48
【问题描述】:

我写了一个函数来打开一个 csv,在一列中找到最大数据,然后子字符串只取最后 4 位数字。它工作了将近 2 个小时,效果非常好。但是突然失败,报错TypeError: unorderable types: float() > str() 相关代码是:

import pandas

mycsvfile = 'filepath'
df = pandas.read_csv(mycsvfile, sep=",", usecols=['ColumnName'])
start_num=int(max(df['ColumnName'])[-4:])+1

列中的值采用 XXXX11XX1111 格式,其中 X 是字母,1 是数字。我只想提取该字段的最后四位数字。

让我感到困惑的是,它在 1000 多条记录中运行良好,却突然无缘无故地开始失败。我什至删除了记录并重新开始,但仍然失败。

【问题讨论】:

  • TypeError 是由 max(df['ColumnName']) 表达式引起的,而不是切片。大概您的列包含浮点值。
  • 糟糕!我错过了在数千人的名单中看到一个空单元格。现在找到了。替换为实际价值,现在很好。谢谢@MartijnPieters
  • Close as “无法再重现的问题” ?或者也许你应该发布你自己接受的答案......

标签: python csv pandas substring


【解决方案1】:

列中的空单元格导致了该问题。用适当的值填充它可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2015-04-15
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多