1. 程式人生 > >pandas21 讀csv檔案read_csv(9.浮點轉換和NA值)(詳細 tcy)

pandas21 讀csv檔案read_csv(9.浮點轉換和NA值)(詳細 tcy)

浮點轉換和NA值  2018/12/26  
目錄:
第1部分:csv文字檔案讀寫

    pandas 讀csv檔案read_csv(1.文字讀寫概要)https://mp.csdn.net/postedit/85289371
    pandas 讀csv檔案read_csv(2.read_csv引數介紹)https://mp.csdn.net/postedit/85289928
    pandas 讀csv檔案read_csv(3.dtypes指定列資料型別)https://mp.csdn.net/postedit/85290575
    pandas 讀csv檔案read_csv(4.to_csv文字資料寫)https://mp.csdn.net/postedit/85290962
    pandas 讀csv檔案read_csv(5.文字資料讀寫例項)https://mp.csdn.net/postedit/85291123
    pandas 讀csv檔案read_csv(6.命名和使用列)https://mp.csdn.net/postedit/85291430
    pandas 讀csv檔案read_csv(7.索引)https://mp.csdn.net/postedit/85291658
    pandas 讀csv檔案read_csv(8.方言和分隔符)https://mp.csdn.net/postedit/85291994
    pandas 讀csv檔案read_csv(9.浮點轉換和NA值)https://mp.csdn.net/postedit/85292391
    pandas 讀csv檔案read_csv(10.註釋和空行)https://mp.csdn.net/postedit/85292609
    pandas 讀csv檔案read_csv(11.日期時間處理) https://mp.csdn.net/postedit/85292925
    pandas 讀csv檔案read_csv(12.迭代和塊)https://mp.csdn.net/postedit/85293639
    pandas 讀csv檔案read_csv(13.read_fwf讀固定寬度資料)https://mp.csdn.net/postedit/85294010
    
第2部分:
    pandas hdf檔案讀寫簡要https://mp.csdn.net/postedit/85294299
    pandas excel讀寫簡要https://mp.csdn.net/postedit/85294545
    
第3部分:
    python中csv模組用法tcy https://mp.csdn.net/postedit/85228189
    pandas讀csv檔案read_csv錯誤解決辦法7種https://mp.csdn.net/postedit/85228808
    pandas to_string用法https://mp.csdn.net/postedit/85294935

例項1:指定浮點轉換的方法 
# float_precision用C引擎;語法分析用特定的浮點轉換器。
# 選項包括普通,高精度,往返轉換器(保證在寫入檔案後往返值)

val = '0.3066101993807095471566981359501369297504425048828125'
data = 'a,b,c\n1,2,{0}'.format(val)

abs(pd.read_csv(StringIO(data), engine='c',
float_precision=None)['c'][0] - float(val))        #1.1102230246251565e-16

abs(pd.read_csv(StringIO(data), engine='c',
float_precision='high')['c'][0] - float(val))      #5.5511151231257827e-17

abs(pd.read_csv(StringIO(data), engine='c',
float_precision='round_trip')['c'][0] - float(val))#0.0

例項2:NA值 


na_values #將哪些值解析為缺失值;
# 如指定字串列表,其中所有值視為缺失值。
# 如指定數字則相應的等效值也是缺失值;如[5.0, 5]NaN

keep_default_na=False#完全覆蓋被識別為缺失的預設值
# 預設NaN識別值
['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A', '#N/A',
'N/A', 'n/a', 'NA', '#NA', 'NULL', 'null', 'NaN', '-NaN', 'nan', '-nan', '']

# 例子:
read_csv(path, na_values=[5])                               #除預設值外5,5.0被識別為NaN。
read_csv(path, keep_default_na=False, na_values=[""])       #只有一個空欄位將被識別為NaN
read_csv(path, keep_default_na=False, na_values=["NA", "0"])#NA和0作為字串NaN。
read_csv(path, na_values=["Nope"])                          #除預設值外"Nope"也被識別為 NaN

pd.read_csv(r'file_data5.csv',header=None)

    0     1   2
0 1001.0 Tom NaN
1 NaN    Bob 30.0
2 1003.0 Jim 40.0

pd.read_csv(r'file_data5.csv',header=None,na_values={0:[1001,'NA'],1:'Bob',2:30})

   0      1   2
0 NaN    Tom NaN #將第1列的1001,第2列的Bob,第3列的30變為空值
1 NaN    NaN NaN
2 1003.0 Jim 40.0