pandas在進行資料儲存與輸出時會做一些相應的操作
1.*索引:將乙個列或多個列讀取出來構成dataframe,其中涉及是否從檔案中讀取索引以及列名
2 *型別推斷和資料轉換:包括使用者自定義的轉換以及缺失值標記
3 *日期解析
4*迭代:針對大檔案進行逐塊迭代。這個是pandas和python原生的csv庫的最大區別
5 *不規整資料問題:跳過一些行,或注釋等等
1import
pandas as pd
2import
numpy as np
34 pd.read_csv('
ch04/ex1.csv
') #
它輸出的是dataframe
5 pd.read_table('
ch04/ex1.csv
',sep='
,') #
它的效果和上一行一樣
67 pd.read_csv('
ch04/ex2.csv
',header=none,names=['
a','
b','
c','
d','
msg'])8
#它為讀取的檔案新增列索引
910 pd.read_csv('
ch04/ex2.csv
',header=none,
11 names=['
a','
b','
c','
d','
msg'],index_col=['
msg','b'
])12
#為檔案新增列索引後,又將'msg','b'兩列變為行索引
1314 pd.read_table('
ch04/ex3.csv
',sep='
\s+')15
#檔案中的分隔符用到正規表示式sep='\s+'
1617 pd.read_csv('
ch04/ex5.csv',
18 na_values=)19#
讀出的檔案沒有值的預設為nan值,20#
na_values通過字典形式表示message與something中需要變為nan值的一些位置
2122 pd.read_csv('
ch04/ex6.csv
',nrows=10)23#
表示只讀取10行
2425
#如果要取出每個索引出現的次數,可以利用chunksize
26 tr = pd.read_csv('
ch04/ex6.csv
',chunksize=1000)27#
先取出1000行28#
它返回支援迭代
29 result =pd.series()
30for chunk in
tr:31 result = result.add(chunk['
key'].value_counts(),fill_value=0)32#
add方法會為索引對應的資料不存在新增預設值,可以採用fill_value=0填充預設值
3334 result = result.sort_values(ascending=false)
35 result[:10] #
取出前十大的數
往磁碟讀入資料
1import
pandas as pd
2import
numpy as np
34 df = pd.read_csv('
ch04/ex5.csv')
5 df.to_csv('
ch04/ex5_out.csv
',index=false) 6#
如果沒有index=false,讀取的檔案與原始檔有差異,給原始檔加了索引7#
index=false指定不寫索引值
89 df.to_csv('
ch04/ex5_out.csv
',index=false,
10 header=none,columns=['
b','
c','
message
'],sep='|'
)11#header=none,不寫列標籤,只寫'b','c','message'三列,每個數字或字串用'|'分隔開
Pandas之資料分組
df.groupby by none axis 0,default 0 level none int,level name,or sequence of such,default none as index true bool,default true sort true group keys tr...
pandas之資料合併
import numpy as np import pandas as pd df1 pd.dataframe np.ones 3,4 0,columns a b c d df2 pd.dataframe np.ones 3,4 1,columns a b c d df3 pd.dataframe ...
Pandas之groupby 用法筆記
dataframe.groupby by none,axis 0,level none,as index true,sort true,group keys true,squeeze false,kwargs 講真的,非常不能理解pandas官方文件的這種表達形式,讓人真的有點摸不著頭腦,examp...