動手學資料分析 Task 2

2021-10-23 15:43:13 字數 3056 閱讀 5149

常用的函式有dropna()和fillna()。

dataframe.

dropna

(axis=

0, how=

'any'

, thresh=none, subset=none, inplace=false)

屬性說明:

預設引數axis=0,根據索引(index)刪除指定的行; axis=1,根據列名(columns)刪除指定的列

預設axis=0,how=『any』,刪除帶有空值的行,只要有乙個空值,就刪除整行

axis=1,刪除帶有空值的列,只要有乙個空值,就刪除整列

how=『all』, 整行都是空值時,才會被刪除

thresh: 設定閾值,缺失值個數大於該閾值,整行(axis=0)或整列(axis=1)才會被刪除

subset=[1,2], 刪除指定列(1,2)中包含缺失值的行

dataframe.

fillna

(value=none, method=none, axis=none, inplace=false, limit=none, downcast=none,

**kwargs)

屬性說明:

value : 變數, 字典, series, or dataframe。用於填充缺失值(例如0),或者指定為每個索引(對於series)或列(對於dataframe)使用哪個字典/serise/dataframe的值。(不在字典/series/dataframe中的值不會被填充)這個值不能是乙個列表。

method : , 預設值 none ; 在series中使用方法填充空白(『backfill』, 『bfill』:用下乙個數值填充;『pad』, 『ffill』:用上乙個數值填充。)

axis :

inplace : boolean, 預設值 false。如果為ture,在原dataframe填滿。注意:這將修改次物件上的任何其他檢視(例如,dataframe中的列的無複製貼片)

limit : int, 預設值 none; 如果指定了方法,則這是連續的nan值的前向/後向填充的最大數量。 換句話說,如果連續nan數量超過這個數字,它將只被部分填充。 如果未指定方法,則這是沿著整個軸的最大數量,其中nan將被填充。 如果不是無,則必須大於0。

downcast : dict, 預設是 none; 如果可能的話,把 item->dtype 的字典將嘗試向下轉換為適當的相等型別的字串(例如,如果可能的話,從float64到int64)

將連續變數age平均分箱成5個年齡段,並分別用類別變數12345表示

df[

'ageband'

]= pd.

cut(df[

'age'],

5,labels =

['1'

,'2'

,'3'

,'4'

,'5'

])

將連續變數age劃分為[0,5) [5,15) [15,30) [30,50) [50,80)五個年齡段,並分別用類別變數12345表示

df[

'ageband'

]= pd.

cut(df[

'age'],

[0,5

,15,30

,50,80

],labels =

['1'

,'2'

,'3'

,'4'

,'5'

])

將連續變數age按10% 30% 50 70% 90%五個年齡段,並用分類變數12345表

df[

'ageband'

]= pd.

qcut

(df[

'age'],

[0,0.1

,0.3

,0.5

,0.7

,0.9

],labels =

['1'

,'2'

,'3'

,'4'

,'5'

])

labelencoder:encode labels with value between 0 and n_classes-1.

from sklearn import preprocessing

le = preprocessing.

labelencoder()

le.fit

(df[

'cabin'

].values.

tolist()

)#transform 以後,這一列數就變成了 [

0, n-

1] 這個區間的數,即是 le.classes_ 中的索引

df['cabin_transform'

]=le.

transform

(df[

'cabin'

].values.

tolist()

)

onehotencoder:encode labels with dummy variables.

for feat in

["age"

,"embarked"]:

# x = pd.

get_dummies

(df[

"age"

]// 6)

# x = pd.

get_dummies

(pd.

cut(df[

'age'],

5)) x = pd.

get_dummies

(df[feat]

, prefix=feat)

df = pd.

concat

([df, x]

, axis=1)

# f[feat]

= pd.

get_dummies

(df[feat]

, prefix=feat)

Task 2 資料分析(EDA)

在此之前基本沒有關於python以及資料探勘的經驗,所以前期不管是庫的安裝還是按照指導pdf敲 都經常遇到錯誤,小白只能邊查邊改邊學,頭禿的同時也強迫自己學到了不少東西。前半部分的 還能勉強一邊敲一邊理解,後面只能走一下流程,粗略地了解一下eda的整體步驟,具體的 以及過程中蒐集的知識 遇到的問題將...

Task2 資料讀取與資料分析

先用pandas讀取資料 train df pd.read csv data train set.csv sep t train df.head label為新聞類別,text為之後的文章內容。讀取資料後計算每條新聞的文字長度。用plt庫繪製直方圖。1 假設字元3750,字元900和字元648是句子...

Task 2 資料讀取與資料分析

import pandas as pd import numpy as np import matplotlib.pyplot as plt train df train df pd.read csv d a train set1.csv sep t nrows 100 train df.head引...