一、重塑資料集
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看了...