鱼C论坛

 找回密码
 立即注册
查看: 1946|回复: 3

invalid literal for int() with base 10

[复制链接]
发表于 2019-11-20 10:16:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import  csv
filename = 'death_valley_2018_simple.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    tmax=[]
    for row in reader:
        tmax.append(int(row[4]))
    print(tmax)

想要打印出第4列的最高温度值,请问这代码哪里不对?
搜索了这个错误,说是因为含有浮点型,但是我检查了CSV文件,都是整型数字啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-20 10:21:18 | 显示全部楼层
啊,是因为有一行缺失了数据
请问这种情况要怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-20 10:53:07 | 显示全部楼层
        缺数据的事楼主自己解决,我负责帮你绕开有问题的数据
import  csv
filename = 'death_valley_2018_simple.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    tmax = []
    for row in reader:
        x = row[4] . strip()
        if len(x) > 0 and (isinstance(x , int) or isinstance(x , float)) :
            tmax . append(eval(x))
    print(tmax)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-20 11:15:14 | 显示全部楼层
jackz007 发表于 2019-11-20 10:53
缺数据的事楼主自己解决,我负责帮你绕开有问题的数据

谢谢!
我刚刚试了try except语句,
except ValueError:
            print(date,'missing data')

但是运行以后并没有打印这行字?是为什么。。
import  csv
from matplotlib import pyplot as plt
from datetime import datetime

filename = 'death_valley_2018_simple.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    dates,tmax,tmin=[],[],[]
    for row in reader:
        try:
            high=int(row[4])
            low=int(row[5])
            date=datetime.strptime(row[2],'%Y/%m/%d')
        except ValueError:
            print(date,'missing data')
        else:
            dates.append(date)
            tmax.append(high)
            tmin.append(low)

fig = plt.figure()
plt.plot(dates,tmax,c='red')
plt.plot(dates,tmin,c='blue')
plt.fill_between(dates,tmax,tmin,facecolor='yellow',alpha=0.5)

plt.title('temperature',fontsize=25)
plt.xlabel('date',fontsize=20)
fig.autofmt_xdate()
plt.ylabel('temperature',fontsize=10)
plt.tick_params(axis='both',which='major',fontsize=14)

plt.show()
还出现了一个问题,ValueError: keyword fontsize is not recognized,这个怎么解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表