六個實用Pandas數(shù)據(jù)處理代碼
前言:
今天和大家分享自己總結的6個常用的Pandas數(shù)據(jù)處理代碼,對于經(jīng)常處理數(shù)據(jù)的coder最好熟練掌握。
選取有空值的行
在觀察數(shù)據(jù)結構時,該方法可以快速定位存在缺失值的行。
df = pd.DataFrame({'A': [0, 1, 2], 'B': [0, 1, None], 'C': [0, None, 2]}) df[df.isnull().T.any()]
輸出:
A B C A B C
0 0 0.0 0.0 1 1 1.0 NaN
1 1 1.0 NaN --> 2 2 NaN 2.0
2 2 NaN 2.0
快速替換列值
實際數(shù)據(jù)處理經(jīng)常會根據(jù)一些限定條件來替換列中的值。
df = pd.DataFrame({'name':['Python', 'Java', 'C']}) # 第一種方式 df['name'].replace('Java', 'JavaScript', inplace=True) # 第二種方式 df.loc[df['name'].str.contains('Java'), 'name'] = 'JavaScript'
輸出:
name name
0 Python 0 Python
1 Java ---> 1 JavaScript
2 C 2 C
對列進行分區(qū)
很多情況下,對于數(shù)值類型的數(shù)據(jù),我們需要分區(qū)來計算每個區(qū)間數(shù)據(jù)出現(xiàn)的頻率。這時用 pd.cut 就能很好的解決這一問題。
import random age = random.sample(range(90), 20) cut_res = pd.cut(age, bins=[0, 18, 35, 60, 90]) # cut_res type:<class 'pandas.core.arrays.categorical.Categorical'> cut_res.value_counts()
輸出:
(0, 18] 6
(18, 35] 1
(35, 60] 6
(60, 90] 7
將一列分為多列
在文本數(shù)據(jù)清洗時,一些列中存在分隔符('', ',', ':')分隔的值,我們只需將該列根據(jù)分隔符進行 split 即可。
import pandas as pd df = pd.DataFrame({'address': ['四川省 成都市', '湖北省 武漢市', '浙江省 杭州市']}) res = df['address'].str.split(' ', expand=True) res.columns = ['province', 'city']
輸出:
province city
0 四川省 成都市
1 湖北省 武漢市
2 浙江省 杭州市
expand
參數(shù)選擇是否擴展為 DataFrame,F(xiàn)alse 則返回 Series
中文篩選
同樣在清洗過程中,往往會出現(xiàn)一些不需要的中文字段,這時直接用 str.contains 篩選即可。
df = pd.DataFrame({'mobile_phone': ['15928765644', '15567332235', '暫無']}) df[~df['mobile_phone'].str.contains('[\u4e00-\u9fa5]')]
輸出:
mobile_phone mobile_phone
0 15928765644 0 15928765644
1 15567332235 --> 1 15567332235
2 暫無
更改列的位置
有時我們需要調整列的位置,當數(shù)據(jù)列較少時,可以用下面的方式
df = pd.DataFrame({'name': ['A', 'B', 'C'], 'age': [10, 20, 30], 'gender': [0, 1, 0]}) df = df[['name', 'gender', 'age']]
輸出:
name age gender name gender age
0 A 10 0 0 A 0 10
1 B 20 1 --> 1 B 1 20
2 C 30 0 2 C 0 30
如果列較多,那么,一個個列舉出來會比較繁瑣,推薦下面插入的方式。
col = df['gender'] df.drop('gender', axis=1, inplace=True) df.insert(1, 'gender', col)
這就是今天分享的主要內容,實踐永遠是最好的學習方式,記憶的也更牢固。
到此這篇關于六個實用Pandas數(shù)據(jù)處理代碼的文章就介紹到這了,更多相關 Pandas數(shù)據(jù)處理 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 分享5個數(shù)據(jù)處理更加靈活的pandas調用函數(shù)方法
- Python?Pandas讀取Excel日期數(shù)據(jù)的異常處理方法
- Python數(shù)據(jù)處理的26個Pandas實用技巧總結
- python?pandas數(shù)據(jù)處理教程之合并與拼接
- 詳解pandas中缺失數(shù)據(jù)處理的函數(shù)
- python優(yōu)化數(shù)據(jù)預處理方法Pandas pipe詳解
- python數(shù)據(jù)處理67個pandas函數(shù)總結看完就用
- pandas中對文本類型數(shù)據(jù)的處理小結
- 淺談Pandas dataframe數(shù)據(jù)處理方法的速度比較
相關文章
Python二叉樹的遍歷操作示例【前序遍歷,中序遍歷,后序遍歷,層序遍歷】
這篇文章主要介紹了Python二叉樹的遍歷操作,結合實例形式分析了Python針對二叉樹的前序遍歷,中序遍歷,后序遍歷,層序遍歷等相關操作實現(xiàn)技巧,需要的朋友可以參考下2018-12-12python中Requests發(fā)送json格式的post請求方法
這篇文章主要介紹了python中Requests發(fā)送json格式的post請求方法,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的朋友可以參考一下2022-09-09給Django Admin添加驗證碼和多次登錄嘗試限制的實現(xiàn)
這篇文章主要介紹了給Django Admin添加驗證碼和多次登錄嘗試限制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07Python3.5內置模塊之os模塊、sys模塊、shutil模塊用法實例分析
這篇文章主要介紹了Python3.5內置模塊之os模塊、sys模塊、shutil模塊用法,結合實例形式分析了Python os模塊、sys模塊及shutil模塊針對文件、路徑等相關操作技巧,需要的朋友可以參考下2019-04-04