1. 程式人生 > >pandas21 讀csv檔案read_csv(8.方言和分隔符)(詳細 tcy)

pandas21 讀csv檔案read_csv(8.方言和分隔符)(詳細 tcy)

方言和分隔符 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

方言: 

# 該dialect關鍵字預設用Excel方言,但您可以指定方言名稱或csv.Dialect例項。
# 所有方言選項都可以通過關鍵字引數單獨指定 

#例項1:dialect

print(data)

label1,label2,label3
index1,"a,c,e
index2,b,d,f

# 使用dialect:
dia = csv.excel()
dia.quoting = csv.QUOTE_NONE
pd.read_csv(StringIO(data), dialect=dia)
        label1 label2 label3
index1      "a      c      e  #資料包含引號
index2       b      d      f
# 例項2:lineterminator行分隔符

data = 'a,b,c~1,2,3~4,5,6'
pd.read_csv(StringIO(data), lineterminator='~')

   a  b  c
0  1  2  3
1  4  5  6

# 例項3:方言選項skipinitialspace,在分隔符後跳過任何空格:
data = 'a, b, c\n1, 2, 3\n4, 5, 6'
pd.read_csv(StringIO(data), skipinitialspace=True)

   a  b  c
0  1  2  3
1  4  5  6  

2.轉義字元: 

# 嵌入欄位中的引號(和其他轉義字元)可以通過多種方式處理。
# 一種方法是使用反斜槓; 要正確解析此資料,您應該傳遞escapechar選項:

data = 'a,b\n"hello, \\"Bob\\", nice to see you",5'
print(data)

a,b
"hello, \"Bob\", nice to see you",5

pd.read_csv(StringIO(data), escapechar='\\')

                               a  b
0  hello, "Bob", nice to see you  5  
3.自動“嗅探”分隔符 

# read_csv用csv.Sniffer csv模組的類;指定sep=None能夠推斷分隔(不一定是逗號分隔)的檔案。

print(open('tmp2.sv').read())
data=':0:1:2:3\n' \
     '0:0.46:-0.28:-1.5:-1.135\n' \
     '1:1.21:-0.17:0.1:-1.044\n' \
     '2:-0.8:-2.1:-0.49:1.07\n' \
     '3:0.7:-0.7:-1.03:0.27 '

pd.read_csv(StringIO(data), sep=None, engine='python')

          Unnamed: 0     0       1     2       3
0                  0     0.46 -0.28 -1.50 -1.135
1                  1     1.21 -0.17  0.10 -1.044
2                  2    -0.80 -2.10 -0.49  1.070
3                  3     0.70 -0.70 -1.03  0.270