pandas21 讀csv檔案read_csv(8.方言和分隔符)(詳細 tcy)
阿新 • • 發佈:2018-12-29
方言和分隔符 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