【发布时间】: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