Python報錯總結

Peng__Ge發表於2018-03-15

2018/05/30更新:Python DataFrame報錯細節,如7更新

用Python兩年多了,也基本熟悉了,但是長久不用,寫著又會出錯了,以下今後報錯和改正的總結,希望對新手或者初學者一定幫助,報錯不可怕,認真看錯誤原因和百度、google,基本都能解決的!以下指的是Python3版本

1、關於map

python3.3之後,通過map函式生成的就是一個iterators,如果你需要看裡面的內容,可以用List轉換,再轉其他格式,例如

a = map(lambda x: x**2, [1,2,3,4]);返回[1,4,9,16],列表格式!

2、關於sys

sys.argv[0]表示檔名,sys.argv[]表示輸入引數列表,例如在shell環境下執行,python test.py a b c

sys.argv[0] = test.py; argv[1] = 'a'  argv[2] = 'b' 以此內推,大家可以敲一下試試!

3、關於檔案讀取

我們一般採用pandas,pd.xxx(import pandas as pd)進行檔案讀取,後面一般加全路徑,但是有時候會報character錯誤,特別是windows系統下;

解決辦法:建議採用(r"/path")或者("//path")或者效仿linux,採用("\path\file"),就能解決問題了

4、cmd 進入命令列報錯 python無法找到,儘管你安裝了anaconda2或者anaconda3

這個問題是你可能需要去修改一下你的環境變數了,anaconda的路徑並沒有完全加進去,結果方法如下:C:\Users\sx\AppData\Local\Continuum\anaconda3\Scripts;

C:\Users\_sx\AppData\Local\Continuum\anaconda3\Library\bin;

C:\Users\_sx\AppData\Local\Continuum\anaconda3;

把這三個加進去就沒問題,安裝路徑需要對應你自己的路徑,以上是我的安裝路徑,請留意。

5、更新內容:df[(True^df['appID'].isin([278,382]))&(True-df['appPlatform'].isin([2]))],df代表資料集DataFrame,app等代表列名;

6、Python class 中帶一條下劃線_ 的變數保護型別只能允許其本身與子類進行訪問,不允許被 from module import *;而帶__兩條下劃線的變數__foo,只允許被本身類使用;__foo__是特殊變數定義方法,一般用於系統變數;

7、The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all():關於DataFrame報上述錯誤的時候,一般是你用merge、concat等拼接方法,導致它的索引發生了重疊,在後續迴圈體的時候,如果你用到索引,就會報錯;改錯的方法是:df.reset_index(drop=True),刪除原來索引,重建一個索引就可以。

相關文章