網站首頁 編程語言 正文
前言:
大家好,今天和大家分享自己總結的6個常用的 Python 數據處理代碼,對于經常處理數據的coder最好熟練掌握。
1、選取有空值的行
在觀察數據結構時,該方法可以快速定位存在缺失值的行。
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
2、快速替換列值
實際數據處理經常會根據一些限定條件來替換列中的值。
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
3、對列進行分區
很多情況下,對于數值類型的數據,我們需要分區來計算每個區間數據出現的頻率。這時用 pd.cut 就能很好的解決這一問題。
import random age = random.sample(range(90), 20) cut_res = pd.cut(age, bins=[0, 18, 35, 60, 90]) # cut_res type:cut_res.value_counts()
輸出:
(0, 18] ? ? 6
(18, 35] ? ?1
(35, 60] ? ?6
(60, 90] ? ?7
4、將一列分為多列
在文本數據清洗時,一些列中存在分隔符(‘’, ‘,’, ‘:’)分隔的值,我們只需將該列根據分隔符進行 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參數選擇是否擴展為 DataFrame,False 則返回 Series
5、中文篩選
同樣在清洗過程中,往往會出現一些不需要的中文字段,這時直接用 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 暫無
6、更改列的位置
有時我們需要調整列的位置,當數據列較少時,可以用下面的方式
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)
原文鏈接:https://blog.csdn.net/weixin_38037405/article/details/123964579
相關推薦
- 2022-09-15 C#中DateTime的時間加減法操作小結_C#教程
- 2022-06-01 Snort中pcre和正則表達式的使用詳解_正則表達式
- 2022-11-05 Kotlin數據容器深入講解_Android
- 2022-04-02 ?Python錯誤與異常處理_python
- 2022-04-25 ASP.NET?Core?MVC中Tag?Helpers用法介紹_實用技巧
- 2022-10-14 nginx 反向代理以及 location /admin/
- 2023-06-19 CentOS7使用yum安裝Golang的超詳細步驟_Golang
- 2022-02-21 小程序頁面跳轉如何同時傳多個參數?
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支