100天2小時第二十四天)重塑資料集 清理資料集

2021-10-25 11:48:50 字數 2801 閱讀 5612

一、重塑資料集

1、旋轉資料

(1)重塑索引、分為stack(將資料的列旋轉為行)和unstack(將資料的行旋轉為列)。

(2)將『長格式』旋轉為『寬格式』

2.轉換資料

(1)資料替換,將某一值或多個值用新的值進行代替。(比較常用的是缺失值或異常值處理,缺失值一般都用null、nan標記,可以用新的值代替缺失標記值)。方法是replace。

data=pd.series([1,-999,2,-999,-1000,3])

print(data)

print(data.replace(-999,np.nan))

print(data.replace([-999,-1000],np.nan))

print(data.replace([-999,-1000],[np.nan,0]))

print(data.replace())

0       1

1 -999

2 2

3 -999

4 -1000

5 3

dtype: int64

0 1.0

1 nan

2 2.0

3 nan

4 -1000.0

5 3.0

dtype: float64

0 1.0

1 nan

2 2.0

3 nan

4 nan

5 3.0

dtype: float64

0 1.0

1 nan

2 2.0

3 nan

4 0.0

5 3.0

dtype: float64

0 1.0

1 nan

2 2.0

3 nan

4 0.0

5 3.0

dtype: float64

2)離散化或面元劃分,即根據某一條件將資料進行分組。

利用pd.cut()方式對一組年齡進行分組。

ages=[20,22,25,27,21,23,37,31,61,45,41,32]

bins=[18,25,35,60,100]

cats=pd.cut(ages,bins)

print(cats)

cats=pd.cut(ages,bins,right=false)

print(cats)

[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60], (35, 60], (25, 35]]

length: 12

categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]

[[18, 25), [18, 25), [25, 35), [25, 35), [18, 25), ..., [25, 35), [60, 100), [35, 60), [35, 60), [25, 35)]

length: 12

categories (4, interval[int64]): [[18, 25) < [25, 35) < [35, 60) < [60, 100)]

預設情況下,cut對分組條件的左邊是開著的狀態,右邊是閉合狀態。可以用left(right)=false來設定哪邊是閉合的。

二、清理資料集

主要是指清理重複值,dataframe中經常會出現重複行,清理資料主要是針對這些重複行進行清理。

data=pd.dataframe()

print(data)#有重複資料

print(data.drop_duplicates())#去除重複資料

print(data.drop_duplicates(['k1']))#此方法是對所有的列進行重複項清理操作

k1  k2

0 one 1

1 one 1

2 one 2

3 two 3

4 two 3

5 two 4

6 two 4

k1 k2

0 one 1

2 one 2

3 two 3

5 two 4

k1 k2

0 one 1

3 two 3

預設情況下,上述方法保留的是第乙個出現的值組合,傳入take_last=true則保留最後乙個。

print(data.drop_duplicates(['k1'],keep='last'))
k1  k2

2 one 2

6 two 4

總結:

1.資料替換:缺失值一般都用null、nan標記,可以用新的值代替缺失標記值)。方法是replace。

2.根據某一條件將資料進行分組:利用pd.cut()函式。

3.資料清理:利用drop_duplicates方法

對所有的列進行重複項清理操作:drop_duplicates([『k1』])

冥想第二十四天

還有乙個需要提高的地方就是 慢一點,以往自己對成功和只是追求的太急切。一急切就亂了節奏,適當的急切是必要的 放輕鬆全身都是最舒服的狀態。平靜的內心讓自己能面對生活的困難。感謝自己,感謝家人,感謝朋友,感謝一切。不責怪自己,一天比一天進步就好。慢慢來。下午和客戶積極的溝通,全身心的投入,發現一點也不困...

連續總結第二十四天

11.4 康鑫 連續總結第二十四天 今天學習了課本上有關陣列的知識,陣列與指標。1,指標運算包括a,賦值運算 b,算術運算 c,關係運算 d,邏輯運算。2 一維陣列 a 與指標 p 3,二維陣列 b,m行n列 與指標。4,字元陣列 s 與指標 ps 5,指標陣列 完成了課本的例題,通過程式設計實現二...

2017 8 23暑假集訓第二十四天

今天一共a了兩道題 1001.1002 比較簡單的?1001做了一上午 一直在繞一點 當輸入字元m後,要輸入五個數字 用scanf輸入的 但是!卻只寫了四個 d!然後就一直在找bug!找了一上午。我很疑惑,為什麼編譯能過!提交還是莫名其妙的wa!一直在懷疑自己!下午 睡過頭了 來的晚了 1007看了...