
一、Pandas 簡述
Pandas 是 Python 語言的一個擴展程式庫,用于資料分析,它并不是熊貓胖達的復數,它的名字衍生自術語 "panel data"和 "Python data analysis",Pandas 是一個強大的分析結構化資料的工具集,基礎是Numpy(提供高性能的矩陣運算),
Pandas 可以從各種檔案格式比如 CSV、JSON、SQL、Microsoft Excel 匯入資料,可以對各種資料進行運算操作,比如歸并、再成形、選擇,還有資料清洗和資料加工特征,
Pandas 里面隱藏了很多包,它是一個核心包,里面有很多其他包的功能,它相當于 Python 中 Excel,它使用表(也就是 dataframe),能在資料上做各種變換,但還有其他很多功能,
二、Pandas的基本使用
1. 匯入pandas庫
import pandas as pd
2. 讀取資料
data = pd.read_csv( my_file.csv )
data = pd.read_csv( my_file.csv , encoding= utf-8 , nrows=1000, skiprows=[2,5])
nrows=1000 表示讀取前 1000 行(row)資料,skiprows=[2,5] 表示你在讀取檔案的時候會移除(skip)第 2 行和第 5 行,
3. 寫出資料
data.to_csv( my_new_file.csv , index=None)
index=None 表示將會以資料本來的樣子寫入,如果沒有寫 index=None,你會多出一個第一列,內容是 1,2,3,...,一直到最后一行,
4.查看資料和資料操作
給出行數和列數
Gives (#rows, #columns)
計算基本的統計資料
data.describe()
列印出資料的前 3 行,與之類似,data.tail(3) 對應的是資料的最后3行,
data.head(3)
列印出第八行
data.loc[8]
列印第八行名為「column_1」的列
data.loc[8, column_1 ]
第四到第六行(左閉右開)的資料子集
data.loc[range(4,6)]
將第八行名為 column_1 的列替換為「english」
data.loc[8, column_1 ] = english
三、Pandas 的資料處理的重要應用
1.檢測缺失值
null_df = data.isnull().sum()
2.篩選資料
Pandas提供了查詢 query()方法來過濾DataFrame,它提供了一種簡單的選擇方法, 并且還簡化了基于索引的選擇任務,pd.concat用于資料合并,合并篩選出的新資料,默認上下堆疊(默認axis=0),若引數axis=1,則設定為左右拼接,
new_data_1 = data.query('age<=40 & charges<=10000') # 40歲以下 且 10000元以下
new_data_2 = data.query('age>40 & age<=50 & charges<=12500') # 40歲至50歲之間 且 12500元以下
new_data_3 = data.query('age>50 & charges<=17000') # 50歲以上 且 17000元以下
new_data = pd.concat([new_data_1, new_data_2, new_data_3], axis=0)
3.得到自變數和因變數
.iloc[],即index locate ,.iloc 是根據行數與列數來索引的,引數是整型,注意索引從0開始,中括號里面是先行后列,以逗號分割,注意此處區間前閉后開,
.loc[],中括號里面是先行后列,以逗號分割,行和列分別是行標簽和列標簽,.loc是用行列標簽來進行選擇資料的,
x = new_data.iloc[:, 0:1].values
y = new_data['charges'].values
四、Pandas 的一些函式
1.統計出現的次數
data[ column_1 ].value_counts()
2.在所有的行、列或者全資料上進行操作
.map() 運算給一列中的每一個元素應用一個函式
data[ column_1 ].map(len)
#len() 函式被應用在了「column_1」列中的每一個元素上
data[ column_1 ].map(len).map(lambda x: x/100).plot()
#在一行中執行多個操作(.map() 和.plot())
data.apply(sum)
#.apply() 會給一個列應用一個函式,
#.applymap() 會給表 (DataFrame) 中的所有單元應用一個函式,
五、tqdm
在處理大規模資料集時,pandas 會花費一些時間來進行.map()、.apply()、.applymap() 等操作,tqdm 是一個可以用來幫助預測這些操作的執行何時完成的包.
from tqdm import tqdm_notebook
tqdm_notebook().pandas()
用 pandas 設定 tqdm
data[ column_1 ].progress_map(lambda x: x.count( e ))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299635.html
標籤:其他
上一篇:PMO首先要有自己的職能定位
