pandas 是數據分析時必須用到的一個庫,功能非常強大
其有兩種數據結構:一維Series 二維表DataFrame(一般讀取后的數據都是df)
導入:import pandas as pd
數據讀取:pd.read_csv('d:/a.csv',dtype=objec,encoding='utf-8')
pd.read_csv('d:/a.txt',dtype=objec,encoding='utf-8')
pd.read_excel('d:/a.xls',dtype=objec,encoding='utf-8')
dtype:指定數據讀取后的類型 encoding:指定編碼 jupyter默認為utf-8
數據輸出:pd.to_excel(path)
一次寫入多張表:利用ExcelWriter()方法
with pd.ExcelWriter(r'd:/test.xlsx',encoding='utf8') as writer: #利用ExcelWriter()創建一個工作薄,並指定路徑和名字 r表示后面的輸入為長字符串,可以省略報錯再加
df1.to_excel(writer,sheet_name='sheet1') #寫入剛剛創建的工作薄並給工作表命名有幾個表就寫入幾次
df2.to_excel(writer,sheet_name='sheet2')
數據統計:
pandas 做數據統計的時候有兩種聚合方式:
1,groupby()分組
2,pivot_table()透視表
pandas 分析實例:
篩選出需要的字段並賦值給新的df,方法是df[['字段名','字段名']]
注意需要加兩個中括號
選取某一列數據:有兩種方法 df['字段名'] 或df.字段名
選取符合要求的數據:類似高級篩選
方法是字段加上條件判斷:如df.分公司=='渝北' df.時間>='2019-01-01' 如果多重判斷可以使用& 或者 or 簡化為:| 豎線 但是每個條件要()起來
同一列的多重篩選方法:df.分公司.isin(['....','....'])
模糊篩選方法:如不知道具體名稱,只知道名稱包含什么 可以說使用str.contains()方法
一個特別實用的技巧:
在篩選條件之前加上“~”會得到相反得結果如:
字符串文本提取:
python提取文本非常方便——利用切片如:
提取日期的年份 ’2019-06-02‘[:4]
提取月份:
如果有不規則的數據需要文本提取,則找到相似的規律執行 比如日期都有 ’-‘,思路是通過find()函數找到其的位置,然后再切片提取。
怎樣將整列數據應用文本提取?
就是前面講過的 apply() 方法
這里定義了一個匿名函數lambda來實現,有關匿名函數請看以前的博客
分類統計:
利用groupby()實現聚類 利用統計函數實現計算
常見的統計函數有:count(),sum(),mean()等
指定統計某一列:
篩選所需數據:如計數大於500
對值進行排序:sort_values(ascending=False) 默認為True升序 False為降序
對行進行篩選:利用df.loc['....']實現 loc 是pandas中對行進行操作
利用透視表pivot_table()進行分類統計:
pd.pivot_table(df,index=' ',columns=' ',values=' ',aggfunc=' ',margins= ,margins_name=' ',fill_value=)
#df:數據源 index:分組字段 columns:列字段 values:計數對象字段 aggfunc:調用函數 margins:添加匯總 margins_name:賦值匯總名稱 fill_value:填充空值
篩選方法和上面講的一樣
暫停一下,改天繼續。