import pandas as pd
pd.read_csv(filepath_or_buffer,header,parse_dates,index_col)
參數(shù):
filepath_or_buffer:
字符串,或者任何對象的read()方法。這個字符串可以是URL,有效的URL方案包括http、ftp、s3和文件??梢灾苯訉懭?文件名.csv"
header:
將行號用作列名,且是數(shù)據(jù)的開頭。
注意當(dāng)skip_blank_lines=True時,這個參數(shù)忽略注釋行和空行。所以header=0表示第一行是數(shù)據(jù)而不是文件的第一行。
【注】:如果csv文件中含有中文,該如何?
1、可修改csv文件的編碼格式為unix(不能是windows)(用notepad++打開修改)
2、df = pd.read_csv(csv_file, encoding="utf-8"),設(shè)置讀取時的編碼或 encoding="gbk"
3、在使用列名來訪問DataFrame里面的數(shù)據(jù)時,對于中文列名,應(yīng)該在列名前面加'u',表示后面跟的字符串以unicode格式存儲,如下所示
print(df[u"經(jīng)度(度)"])
(1)、header=None
即指定原始文件數(shù)據(jù)沒有列索引,這樣read_csv為其自動加上列索引{從0開始}
ceshi.csv原文件內(nèi)容:
c1,c2,c3,c4
a,0,5,10
b,1,6,11
c,2,7,12
d,3,8,13
e,4,9,14
df=pd.read_csv("ceshi.csv",header=None)
print(df)
結(jié)果:
0 1 2 3
0 c1 c2 c3 c4
1 a 0 5 10
2 b 1 6 11
3 c 2 7 12
4 d 3 8 13
5 e 4 9 14
(2)、header=None,并指定新的索引的名字names=seq序列
df=pd.read_csv("ceshi.csv",header=None,names=range(2,6))
print(df)
結(jié)果:
2 3 4 5
0 c1 c2 c3 c4
1 a 0 5 10
2 b 1 6 11
3 c 2 7 12
4 d 3 8 13
5 e 4 9 14
(3)、header=None,并指定新的索引的名字names=seq序列;如果指定的新的索引名字的序列比原csv文件的列數(shù)少,那么就截取原csv文件的倒數(shù)列添加上新的索引名字
df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
print(df)
結(jié)果:
2 3
c1 c2 c3 c4
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
(4)、header=0
表示文件第0行(即第一行,索引從0開始)為列索引
df=pd.read_csv("ceshi.csv",header=0)
print(df)
結(jié)果:
c1 c2 c3 c4
0 a 0 5 10
1 b 1 6 11
2 c 2 7 12
3 d 3 8 13
4 e 4 9 14
(5)、header=0,并指定新的索引的名字names=seq序列
df=pd.read_csv("ceshi.csv",header=0,names=range(2,6))
print(df)
結(jié)果:
2 3 4 5
0 a 0 5 10
1 b 1 6 11
2 c 2 7 12
3 d 3 8 13
4 e 4 9 14
注:這里是把原csv文件的第一行換成了range(2,6)并將此作為列索引
(6)、header=0,并指定新的索引的名字names=seq序列;如果指定的新的索引名字的序列比原csv文件的列數(shù)少,那么就截取原csv文件的倒數(shù)列添加上新的索引名字
df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
print(df)
結(jié)果:
2 3
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
parse_dates:
布爾類型值 or int類型值的列表 or 列表的列表 or 字典(默認(rèn)值為 FALSE)
(1)True:嘗試解析索引
(2)由int類型值組成的列表(如[1,2,3]):作為單獨數(shù)據(jù)列,分別解析原始文件中的1,2,3列
(3)由列表組成的列表(如[[1,3]]):將1,3列合并,作為一個單列進行解析
(4)字典(如{'foo':[1, 3]}):解析1,3列作為數(shù)據(jù),并命名為foo
index_col:
int類型值,序列,F(xiàn)ALSE(默認(rèn) None)
將真實的某列當(dāng)做index(列的數(shù)目,甚至列名)
index_col為指定數(shù)據(jù)中那一列作為Dataframe的行索引,也可以可指定多列,形成層次索引,默認(rèn)為None,即不指定行索引,這樣系統(tǒng)會自動加上行索引。
舉例:
df=pd.read_csv("ceshi.csv",index_col=0)
print(df)
結(jié)果:
c2 c3 c4
c1
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
表示:將第一列作為索引index
df=pd.read_csv("ceshi.csv",index_col=1)
print(df)
結(jié)果:
c1 c3 c4
c2
0 a 5 10
1 b 6 11
2 c 7 12
3 d 8 13
4 e 9 14
表示:將第二列作為索引index
df=pd.read_csv("ceshi.csv",index_col="c1")
print(df)
結(jié)果:
c2 c3 c4
c1
a 0 5 10
b 1 6 11
c 2 7 12
d 3 8 13
e 4 9 14
表示:將列名"c1"這里一列作為索引index
【注】:這里將"c1"這一列作為索引即行索引后,"c1"這列即不在屬于列名這類,即不能使用df['c1']獲取列值
【注】:read_csv()方法中header參數(shù)和index_col參數(shù)不能混用,因為header指定列索引,index_col指定行索引,一個DataFrame對象只有一種索引
squeeze:
布爾值,默認(rèn)FALSE
TRUE 如果被解析的數(shù)據(jù)只有一列,那么返回Series類型。
pandas讀取文件的read_csv()
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。