資料分析(十四)

2021-09-29 20:33:39 字數 4002 閱讀 4776

>>

> df1 = pd.dataframe(

[np.random.randint(10,

50,4)

,[1.1,

2.2,

3.3,]]

,columns=

list

('abcd'))

>>

> df1

a b c d

020.0

30.0

40.0

41.0

11.1

2.23.3 nan

>>

> df1.isnull(

) a b c d

0false

false

false

false

1false

false

false

true

刪除行

>>

> df1

a b c d

020.0

30.0

40.0

41.0

11.1

2.23.3 nan

>>

> df1.dropna(axis=

'index'

) a b c d

020.0

30.0

40.0

41.0

刪除列

>>

> df1.dropna(axis=

'columns'

) a b c

020.0

30.0

40.0

11.1

2.23.3

注意點:

dropna()這個方法,預設刪除一行

axis='columns',指定刪除列

inplace的引數預設是false,代表不在原始資料上做操作,返回刪除空值之後的資料,如果設定為true,則在原始資料上進行更改

>>

> df1

a b c d

020.0

30.0

40.0

41.0

11.1

2.23.3 nan

# 通過上一行的數值進行填充

>>

> df1.fillna(method=

'ffill'

) a b c d

020.0

30.0

40.0

41.0

11.1

2.23.3

41.0

# 針對不同的列有不同的填充值

>>

>df1.fillna(

) a b c d

020.0

30.0

40.0

41.0

11.1

2.23.3

400.0

練習:

>>

> df1 = pd.read_csv(

'teleco_camp_orig.csv'

)# 通過中位數來填充

>>

> df1.fillna(df1.median(

))

注意點:

如果在fillna()這個方法中直接填值,代表所有的nan資料,就會直接換成指定的值

如果引數是字典,那麼表示對於不同的列有不同的值,字典的鍵名是列名,值為填充的值

也可以通過設定inplace這個引數,來修改原始資料

>>

> df2 = pd.dataframe([[

11,12,

13,14,

15],[

11,12,

13,14,

15]],columns=

list

('abcde'),

index=

list

('ab'))

>>

>

print

(df2)

a b c d e

a 11

1213

1415

b 11

1213

1415

# 判斷重複資料

>>

> df2.duplicated(

'a')

a false

b true

dtype:

bool

# 直接刪除重複資料

>>

> df2.drop_duplicates(

'a')

a b c d e

a 11

1213

1415

>>

> df3 = pd.dataframe(np.random.randint(-5

,10,(

3,4)

),index=

list

('abc'),

columns=

list

('abcd'))

>>

> df3

a b c d

a 6-59

5b -2-

10-2

c 2-37

-3

直接替換

>>

> df4=df3.replace(-3

,300

)>>

> df4

a b c d

a 6-59

5b -2-

10-2

c 2300

7300

利用正則進行替換(注意:正則需要是字串型別)

>>

> df5 = pd.dataframe(

[np.array(

['a'

,'1'])

],columns=

list

('ab'))

>>

> df5

a b0 a 1

>>

> df5.replace(regex=

'\d'

,value=

100)

a b0 a 100

>>

> df5.replace(regex=

'a',value=

100)

a b0 aaa 1111

利用字典進行替換

>>

> df5.replace(

) a b

0 aaa 1111

>>

> df5.replace(

['a'

,'1'],

100)

a b0100

100>>

> df6 = pd.dataframe(

[np.array(

['a'

,'1'

,'a'])

],columns=

list

('abc'))

>>

> df6

a b c

0 a 1 a

# 指定'c'列的a元素,替換成'aaaa'

>>

> df6.replace(

,'aaaa'

) a b c

0 a 1 aaaa

資料分析 資料分析概述

了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...

資料分析 資料分析的誤區

在資料分析的過程中,我們難免會走一些彎路,但有些彎路是可以避免的,下面我將介紹幾個資料分析過程中常見的誤區 我們一定都聽說過二戰中的乙個經典示例 軍方為了提高戰鬥機飛行員的生還率,打算在飛機上增加裝甲的厚度,但不能在所有部位加厚,這樣會喪失戰機的靈活性,於是軍方請了統計學家來研究,這些專家在一開始就...

「資料分析」崗位分析

行業內公司的融資情況從一定程度上說明了選擇資料分析崗位的穩定性 佔比情況是所有職位累加在一起,未區分職位 不需要融資的公司佔比60 d輪以上的公司42 其實很多不需要融資的公司,規模也是很大的,可以結合公司規模來判斷公司的情況如何,是否值得去發展。提供資料類職位的公司,規模還算比較大的 500人以上...