Python資料分析筆記(二)

2021-08-09 06:42:32 字數 2483 閱讀 4915

接上文python資料分析筆記(一)

關注一些每行資料的'a'字段:

發現這行含有url短操作的瀏覽器,裝置,應用程式的相關資訊

我們現在想要按微軟使用者和非微軟使用者對時區資訊進行分解,即想知道不同時區微軟使用者和非微軟使用者的比例

假定『a』欄位中含有『windows』的就認為是微軟使用者 

首先,去除掉沒有'a'欄位的使用者資料,然後根據'a'欄位中是否含有windows來統計每個使用者是否為微軟使用者

這裡x,y是可選引數,condition是條件

當conditon的某個位置的為true時,輸出x的對應位置的元素,否則選擇y對應位置的元素;

如何只有引數condition,則函式返回為true的元素的座標位置資訊;

接下來根據得到得作業系統列表和時區值對cframe進行分組

in [27]: cframe **先根據不同的時區(『tz』)進行分組,分組後再根據微軟和非微軟進行分組

這個時候 by_tz_os還是乙個groupby 物件,實際上還沒有進行任何的運算,只含有一些中間資料

通過直接鍵入 by_tz_os可以檢視

所以接下來我們通過計算每個組的個數來統計不同作業系統使用者的數量:

in [28]:size函式對統計結果進行計數,unstack函式對計數的結果進行重塑,

最後對nan,即使用者數量為0的值進行填充為0

接下來選擇最常出現的時區:

官方文件如下:

dataframe.

sum(

axis=none, 

skipna=none, 

level=none, 

numeric_only=none, 

**kwargs

)return the sum of the values for the requested axis

parameters :

axis :

skipna : boolean, default true

exclude na/null values. if an entire row/column is na, the result will be na

level : int, default none

if the axis is a multiindex (hierarchical), count along a particular level, collapsing into a series

numeric_only : boolean, default none

include only float, int, boolean data. if none, will attempt to use everything, then use only numeric data

returns :

sum : series or dataframe (if level specified)

構造了乙個間接索引陣列,對agg_counts 中的列數進行求和操作,argsort函式對陣列進行從小到大的排列

想要獲取人數最多的時區,所以去最後十項的值

到這裡我們就可以畫圖了:

生成堆積條形圖,結果如下:

這張圖的缺點是容易看不清人數較少的時區的不同使用者的分布

所以我們改進一下

將各行規範化,總計為1,然後從新繪圖:

效果如下:

Python資料分析學習筆記二

4 陣列的組合 numpy中的陣列組合有水平組合 垂直組合 深度組合和列組合等多種組合方式。使用hstack 函式可以完成陣列的水平拼接,例 import numpy as np a1 np.arange 9 reshape 3,3 print a1 a2 a1 2 print a2 b np.hs...

Python資料分析筆記

數值型字元型 資料結構 取值 true 真 false 假 運算規則 與 一假為假,兩真為真 true true true false false false 或 兩假為假,一真為真 true true true false false falsenot 非 非真為假,非假為真 not true n...

Python資料分析入門筆記

資料基本處理 資料缺失值處理有好幾種對應的函式,接下來介紹三種我學習的函式dropna,fillna,replace.這三種函式功能上的區別,以及不同的適用場景.這三種函式都在pandas裡,所以寫 時首先要匯入pandas dropna 函式是用來濾除缺失值的,預設的情況下是清除所有的含有nan資...