首先匯入需要的工具numpy,pandas,matplotlib.pyplot
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
pandas讀取資料檔案
df = pd.read_csv('./python案例/googleplaystore.csv', usecols=(0, 1, 2, 3, 4, 5,6))
usecols函式表示讀取前多少列資料,0到6表示讀取7列。不用usecols函式預設讀取所有列,本次分析只需用到前7列。
df.head()
預覽資料,預設為前五行。
執行結果:
describe函式展示資料的一些描述性統計資訊。
預設只輸出數值型資料的統計資訊。
設定引數為'all'則輸入的所有列都在輸出中,設定為o則只輸出離散型變數的統計資訊
count顯示有9367條資料,現在進行一步步資料清洗。
篩選重複資料:
df.drop(df[df.duplicated()].indedx, inplace=true)
duplicated函式篩選重複資料,indedx找出索引。drop函式刪除索引資料行,
inplace函式為true時,不建立新的物件,在原資料基礎上修改。
為false時對資料進行修改,建立並返回新的物件和結果。 預設為false。
單列資料統計預覽:
df.rating.value_counts(dropna=false)
dropna函式為false時,執行結果顯示nan值資料。
為true時,執行結果只顯示有資料的結果。
這個方式可以預覽各個列的資料進行檢視,對資料進行篩選清洗。
執行結果有nan值,資料較少時可以刪除,資料比較多時刪除會對分析結果產生較大影響。
對這種情況可以選擇填充數值,根據具體情況判斷可選:中位數,均值等。這裡選擇均值
df['rating'].fillna(value=df['rating'].mean(),inplace=true)
fillna函式給nan值填充,inplace函式為true時原物件基礎上修改。
執行後之前存在的nan值會被填充為rating的平均值
因為資料分析是對數值型別資料計算,所以資料也要檢查和轉換為數值型別。
df['reviews'].value_counts(dropna=false)
統計reviews列
df['reviews'].str.isnumeric()
.str.isnumeric()函式,如果字串只包含數字字元,返回true。否則返回false。
執行結果:
0 true
1 true
2 true
3 true
4 true
...df['reviews'] = df['reviews'].astype('i8')
#將字串改為數值型別,i8是int64資料型別。
修改為數值型別後,可以用describe函式預覽一下
reviews也變為了數值型別:
預覽size列:
字串形式,需要轉換為可計算的數值型別。
df['size'] = df['size'].str.replace('m', 'e+6')
df['size'] = df['size'].str.replace('k', 'e+3')
df['size'] = df['size'].str.replace('varies with device', '0')
m替換為e+6,k替換為e+3,'varies with device'替換為0
df['size'] = df['size'].astype('f8')
轉換資料型別為f8
df['size'].replace(0, df['size'].mean(), inplace=true)
數值0填充為當前列的平均值。
再次預覽一下,就有了3個可計算的資料列。
這次處理installs列和處理size列方法相同。
當然資料處理方法很多,處理方法並不固定。
df['installs'] = df['installs'].str.replace('+', '')
df['installs'] = df['installs'].str.replace(',', '')
df['installs'] = df['installs'].astype('f8')
分別替換字段,修改資料型別。
df['type'].value_counts()
預覽type列
現在資料已經清洗出4列數值型的資料,就可以用來計算分析了!
對category列進行分組統計:
分組category列,以reviews資料進行降序排列:
python資料分析
以網路爬蟲為例,網路爬蟲是乙個自動提取網頁的程式,爬蟲是搜尋引擎的第一步,也是最容易的一部。網頁搜尋,建立索引,查詢排序 用c c 效率高,速度塊,適合通用搜尋引擎做往往爬取。但是它的缺點也特別明顯 開發慢,寫起來又臭又長的。而python無論在資料分析還是在指令碼自動化編寫尚都是簡單,易學的。良好...
python資料分析
陣列間的算術運算 npwhere pandas的使用 np.random.rand 3,4 產生乙個3行4列的矩陣 0 1之間的 in 32 data1 1,2,3,4.0 in 34 arr1 np.array data1 in 35 arr1 out 35 array 1.2.3.4.in 37...
python資料分析
1.資料分析的含義與目標 2.python與資料分析 3.python資料分析大家族 4.python環境搭建 一 numpy 功能 ndarray 多維操作 線性代數 官網 numpy是python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。nu...