Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 612|回复: 0

python-报错和解决方法汇总

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-28 13:05:41 | 显示全部楼层 |阅读模式

    python的错误提示非常人性化,通常报错时就会提供解决办法,比如一些syntax error就很容易解决,整理了一下遇到的稍微麻烦一些的:

    按住Ctrl+F在本页搜索

    1.  Matplotlib Deprecation Warning: The finance module has been deprecated in mpl 2.0 and will be removed in mpl 2.2. Please use the module mpl_finance instead.

    原因:输入import mpl_finance as finance,程序说没有这个模块。因为新版本mpl 2.2中,finance才会被替换成mpl_finance,目前import matplotlib.finance是不会影响使用的。为了兼容新版本,可以下载mpl_finance这个模块,这样才可以import

    解决:

      windows: 命令行输入:pip install https://github.com/matplotlib/mpl_finance/archive/master.zip 

      linux: sudo pip install https://github.com/matplotlib/mpl_finance/archive/master.zip

    __________________________________________________________________________________________________________________________________________________

    2. Python IndexError: list assignment index out of range

    原因:通常是因为直接对空的list进行赋值,比如A=[];A[0]=1

    解决:A.append(1)

    __________________________________________________________________________________________________________________________________________________

    3. IndexError: list index out of range

    原因:用pandas.read_excel读取excel文件时报错,可能是有未显示的多余列

    解决:将excel的内容拷贝到一个新的文件内

    __________________________________________________________________________________________________________________________________________________

     4. If using all scalar values, you must pass an index

    原因:在将dict转为dataframe格式时,未指定index

    解决:df=pd.dataframe(dict,index=[0]),这里index的值由dict内的格式决定

    __________________________________________________________________________________________________________________________________________________

    5. JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    原因:用okcoin的api获取数据时出现,原因不明

    解决:在url前面添加https://解决

    __________________________________________________________________________________________________________________________________________________

    6. TypeError: can't multiply sequence by non-int of type 'float'

    原因:用dataframe进行数据类型转换(object转np.int)时遇到,python的int无限制,但C的int和long都会溢出,因为python的很多函数底层用C实现的,所以python有时也会出现这种错误

    解决:将np.int改成np.float,再转换过来

    __________________________________________________________________________________________________________________________________________________

    7.Keyerror:(某个数字)

    原因:在dataframe过滤或删除一些行以后,index不连续,这样在遍历的时候会出现keyerror

    解决:可以换成其他index,也可以创建新的连续的索引

    df['index']=range(len(df['direction']))
    df=df.set_index(df['index'])

    __________________________________________________________________________________________________________________________________________________

     8. A value is trying to be set on a copy of a slice from a DataFrame

    原因:在对dataframe的某一行某一列进行改动时,其他程序正在对dataframe占用,通常是因为代码的逻辑位置不对

    解决:调整代码逻辑,或者另外拷贝一份dataframe进行改动

      不要直接对dataframe的某一个位置进行赋值

      参考:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

      或者新建一个list,将需要增加的数据添加,然后将dataframe列的数据改成list的数据a.append(x);pd.Dataframe(a)

    __________________________________________________________________________________________________________________________________________________

    9. PermissionError: [WinError 5] 拒绝访问。: 'C:/Users/xxx/Desktop/' 

    原因:用os.remove()删除文件夹下的文件时,文件或文件夹在被占用

    解决:改用send2trash模块(把文件移到回收站)或者shutil模块(这个会连文件夹一起直接删除)

    import send2trash

    send2trash.send2trash(file_dir)

    import shutil

    shutil.rmtree(file_dir)

    __________________________________________________________________________________________________________________________________________________

    10. second must be in 0..59 & ValueError: unconverted data remains: .0

    原因:在将数字转化成datetime格式时,second有大于59的数,判断大于59时,在minutes+1,报第二个error

    解决:对于大于59的时间数字直接赋值为59,然后可选择去重

     __________________________________________________________________________________________________________________________________________________

    11. No module named 'psycopg2._psycopg

    原因:即使已经安装psycopg,正常使用过,也有可能会报这个错

    解决:重新安装

      pip uninstall psycopy2

      pip install psycopg2

     __________________________________________________________________________________________________________________________________________________

    12. TypeError: unsupported operand type(s) for /: 'method' and 'int'

    原因:method不能用在运算符的地方,通常是因为method忘记括号

    解决:加上括号,比如sum()等容易忘记的地方

    __________________________________________________________________________________________________________________________________________________

    13. TypeError: only list-like objects are allowed to be passed to isin(), you passed a [int]

    原因:对dataframe进行筛选时筛选值是int,不能用df.isin(list)

    解决:

      df=df[column name].isin(list name) #筛选对象是list

      df=df[df[column name]==i] #筛选对象是int

    __________________________________________________________________________________________________________________________________________________

    14. TypeError: unhashable type: 'slice

    原因:对dataframe切片错误

    解决:将df[:,i]改成df.iloc[:,i]

    __________________________________________________________________________________________________________________________________________________

     15. JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    原因:request网页信息,转换成json格式时报错

    解决:如果检测json转换的信息没有错的话,可能是页面拒绝request类型的访问

    __________________________________________________________________________________________________________________________________________________

    16. ValueError: dictionary update sequence element #0 has length 7; 2 is required

    原因:将list转换成dict时直接用了dict(list)

    解决:改用eval(list)

    __________________________________________________________________________________________________________________________________________________

     17. ValueError: No engine for filetype: ''

    原因:pandas输出文件时未指定文件后缀名

    解决:filename后加.xls或者.csv

    __________________________________________________________________________________________________________________________________________________

    18.  redis exception  connectionError :error -2 connecting to redis:6379. name or service not known.

      redis.exceptions.ConnectionError: Error 11001 connecting to host:6379. getaddrinfo failed.

    原因:检查redis连接的host名称,通常都是因为拼写之类的错误

    解决:

    __________________________________________________________________________________________________________________________________________________

    19. ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

    原因:对dataframe的值进行判断并提取时使用了错误的格式:df [df.a>1 and df.b<0]

    解决:改成:df [df.a>1 & df.b<0]

    __________________________________________________________________________________________________________________________________________________

    20. IndexError: single positional indexer is out-of-bounds

    原因:索引出界
    解决:检查dataframe实际列数行数

    __________________________________________________________________________________________________________________________________________________

     21. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 3: invalid continuation byte

    原因:用pandas读取csv文件时报错,csv文件里有中文,utf-8不能解析
    解决:

    df = pd.read_csv('path' + 'filename.csv', encoding='GB2312')

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

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

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 22:01 , Processed in 0.058466 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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