午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

python讀取文本文件數(shù)據(jù)

 advanced00 2018-10-06

本文要點(diǎn)剛要:

(一)讀文本文件格式的數(shù)據(jù)函數(shù):read_csv,read_table

    1.讀不同分隔符的文本文件,用參數(shù)sep

    2.讀無(wú)字段名(表頭)的文本文件 ,用參數(shù)names

    3.為文本文件制定索引,用index_col

    4.跳行讀取文本文件,用skiprows

    5.數(shù)據(jù)太大時(shí)需要逐塊讀取文本數(shù)據(jù)用chunksize進(jìn)行分塊。

(二)將數(shù)據(jù)寫(xiě)成文本文件格式函數(shù):to_csv

 

 

范例如下:

(一)讀取文本文件格式的數(shù)據(jù)集

1.read_csv和read_table的區(qū)別:

 #read_csv默認(rèn)讀取用逗號(hào)分隔符的文件,不需要用sep來(lái)指定分隔符

1
import pandas as pdpd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.csv')

 

1
2
3
#read_csv如果讀的是用非逗號(hào)分隔符的文件,必須要用sep指定分割符,不然讀出來(lái)的是原文件的樣子,數(shù)據(jù)沒(méi)被分割開(kāi)
import pandas as pd
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt')

  

1
2
3
#與上面的例子可以對(duì)比一下區(qū)別
import pandas as pd
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|')

  

1
2
3
#read_table讀取文件時(shí)必須要用sep來(lái)指定分隔符,否則讀出來(lái)的數(shù)據(jù)是原始文件,沒(méi)有分割開(kāi)。
import pandas as pd
pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.csv')

 

1
2
3
#read_table讀取數(shù)據(jù)必須指定分隔符
import pandas as pd
pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|')

  

2.讀取文本文件時(shí)不用header和names指定表頭時(shí),默認(rèn)第一行為表頭

1
2
#用header=None表示數(shù)據(jù)集沒(méi)有表頭,會(huì)默認(rèn)用阿拉伯?dāng)?shù)字填充表頭和索引
pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|',header=None)

  

1
2
#用names可以自定義表頭
pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|',                    names=['x1','x2','x3','x4','x5'])

 

3.默認(rèn)用阿拉伯?dāng)?shù)字指定索引;用index_col指定某一列作為索引

1
2
3
names=['x1','x2','x3','x4','x0']
pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|',
                   names=names,index_col='x0')

  

4.以下示例是用skiprows將hello對(duì)應(yīng)的行跳過(guò)后讀取其他行數(shù)據(jù),不管首行是否作為表頭,都是將表頭作為第0行開(kāi)始數(shù)


可以對(duì)比一下三個(gè)例子的區(qū)別進(jìn)行理解

1
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt')

1
2
3
names=['x1','x2','x3','x4','x0']
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt',names=names,
            skiprows=[0,3,6])

  

1
2
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt',
            skiprows=[0,3,6])

  

1
2
pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt',header=None,
            skiprows=[0,3,6])

  

5.分塊讀取,data1.txt中總共8行數(shù)據(jù),按照每塊3行來(lái)分,會(huì)讀3次,第一次3行,第二次3行,第三次1行數(shù)據(jù)進(jìn)行讀取。


注意這里在分塊的時(shí)候跟跳行讀取不同的是,表頭沒(méi)作為第一行進(jìn)行分塊讀取,可通過(guò)一下兩個(gè)例子對(duì)比進(jìn)行理解。

1
2
3
4
chunker = pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt',chunksize=3)
for m in chunker:  
    print(len(m))
    print m

  

1
2
3
4
5
chunker = pd.read_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data1.txt',header=None,
                      chunksize=3)
for m in chunker:   
    print(len(m))
    print m

  

(二)將數(shù)據(jù)寫(xiě)入文本格式用to_csv


以data.txt為例,注意寫(xiě)出文件時(shí),將索引也寫(xiě)入了

1
2
data=pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|')
print data

  

1
2
3
#可以用index=False禁止索引的寫(xiě)入。
data=pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|')
data.to_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\outdata.txt',sep='!',index=False)

  

1
2
3
4
#可以用columns指定寫(xiě)入的列
data=pd.read_table('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\data.txt',sep='|')
data.to_csv('C:\\Users\\xiaoxiaodexiao\\pythonlianxi\\test0424\\outdata2.txt',sep=',',index=False,
            columns=['a','c','d'])

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多