天天看點

利用python做資料分析(五)-讀取合并多個檔案

names将所有的資料整合到單個DataFrame中

- concat預設将多個DataFrame整合到一起

- ignore_index=True, 因為我們不希望保留read_csv所傳回的原始行号

可以得到結果集為:

利用python做資料分析(五)-讀取合并多個檔案

注意index的id,若不加ignore_index,則得到的結果集是

利用python做資料分析(五)-讀取合并多個檔案

看出差別了吧。

利用groupby和pivot_table在sex和year級别上對其進行聚合了

利用python做資料分析(五)-讀取合并多個檔案

作圖

利用python做資料分析(五)-讀取合并多個檔案

下面我們要統計百分比,再來看下原始的names:

利用python做資料分析(五)-讀取合并多個檔案

接着groupby year

year

1880 201486

1881 192703

1882 221538

1883 216954

1884 243466

Name: births, dtype: int64

現在想男女分開看:

year sex

1880 F 90993

M 110493

1881 F 91955

M 100748

1882 F 107851

下面來計算比例,并增加一列。astype的作用是類型轉換。

利用python做資料分析(五)-讀取合并多個檔案

之後可以進行完整性認證,比如prop的和是否為1

傳回TRUE

現在我想取一個子集,比如year,sex groupby的頭1000個

利用python做資料分析(五)-讀取合并多個檔案

男女的各自統計

制作透視表:

利用python做資料分析(五)-讀取合并多個檔案

1880 9701.0

1881 8795.0

1882 9597.0

1883 8934.0

1884 9427.0

1885 8801.0

1886 9074.0

1887 8165.0

1888 9300.0

利用python做資料分析(五)-讀取合并多個檔案

現在檢視這最熱的1000個名字所占全部名字的比例

利用python做資料分析(五)-讀取合并多個檔案
利用python做資料分析(五)-讀取合并多個檔案

cumsum是計算累計和

261874 0.842953

261875 0.843055

261876 0.843156

Name: prop, dtype: float64

array([116], dtype=int64),即最終結果是117

1880 F [38]

M [14]

1881 F [38]

1882 F [38]

M [15]

1883 F [39]

利用python做資料分析(五)-讀取合并多個檔案