python 數據分析之pandas


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:填充空值

 

 

篩選方法和上面講的一樣

暫停一下,改天繼續。

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM