pandas讀取文件的read_csv()

import pandas as pd
pd.read_csv(filepath_or_buffer,header,parse_dates,index_col)
參數:
filepath_or_buffer:
字符串,或者任何對象的read()方法。這個字符串可以是URL,有效的URL方案包括http、ftp、s3和文件。可以直接寫入"文件名.csv"

header:
將行號用作列名,且是數據的開頭。
注意當skip_blank_lines=True時,這個參數忽略註釋行和空行。所以header=0表示第一行是數據而不是文件的第一行。

(1)、header=None
即指定原始文件數據沒有列索引,這樣read_csv爲其自動加上列索引{從0開始}
ceshi.csv原文件內容:
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)
結果:
    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)
結果:
    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文件的列數少,那麼就截取原csv文件的倒數列添加上新的索引名字
df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
print(df)
結果:
        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)
結果:
  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)
結果:
   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文件的列數少,那麼就截取原csv文件的倒數列添加上新的索引名字
df=pd.read_csv("ceshi.csv",header=0,names=range(2,4))
print(df)
結果:
     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 字典(默認值爲 FALSE)
(1)True:嘗試解析索引
(2)由int類型值組成的列表(如[1,2,3]):作爲單獨數據列,分別解析原始文件中的1,2,3列
(3)由列表組成的列表(如[[1,3]]):將1,3列合併,作爲一個單列進行解析
(4)字典(如{'foo':[1, 3]}):解析1,3列作爲數據,並命名爲foo


index_col:
int類型值,序列,FALSE(默認 None)
將真實的某列當做index(列的數目,甚至列名)
index_col爲指定數據中那一列作爲Dataframe的行索引,也可以可指定多列,形成層次索引,默認爲None,即不指定行索引,這樣系統會自動加上行索引。

舉例:
df=pd.read_csv("ceshi.csv",index_col=0)
print(df)
結果:
    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)
結果:
   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)
結果:
    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參數和index_col參數不能混用,因爲header指定列索引,index_col指定行索引,一個DataFrame對象只有一種索引

squeeze:
布爾值,默認FALSE
TRUE 如果被解析的數據只有一列,那麼返回Series類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章