pandas提取數(shù)據(jù)的6種方法匯總
pandas提取數(shù)據(jù)的6種方法
pandas是Python數(shù)據(jù)分析必備工具,它有強(qiáng)大的數(shù)據(jù)清洗能力,往往能用非常少的代碼實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)處理。
五個(gè)方面:
- 比較運(yùn)算:、<、>、>=、<=、!=
- 范圍運(yùn)算:between(left,right)
- 字符篩選:str.contains(pattern或字符串,na=False)
- 邏輯運(yùn)算:&(與)、|(或)、not(取反)
- 比較函數(shù):eq, ne, le, lt, ge, gt(相當(dāng)于,=!,<=,<,>=,>)
apply和isin函數(shù)
編碼使用的是Jupyter Notebook,可支持網(wǎng)頁(yè)編輯,會(huì)在后續(xù)的文章中寫(xiě)使用方法~~~
首先讀取數(shù)據(jù)
import pandas as pd data=pd.read_excel('超市運(yùn)營(yíng)數(shù)據(jù)模板.xlsx') print(data)
data.dtypes可以獲取數(shù)據(jù)類型
1.篩選性別為’男’的數(shù)據(jù)
①第一種方法,用比較運(yùn)算符‘==’:
data[data.性別=='男']
②第二種方法,用比較函數(shù)’eq’:
data[data['性別'].eq('男')]
2.篩選入學(xué)年份小于等于2017的數(shù)據(jù)
①第一種方法,用比較運(yùn)算符‘<=’:
data[data.入學(xué)年份<=2017]
②第二種方法,用比較函數(shù)’le’:
data[data['入學(xué)年份'].le(2017)]
3.篩選入學(xué)年份大于2017的數(shù)據(jù)
data[data.入學(xué)年份>2017]
②第二種方法,用比較函數(shù)’ge’:
data[data['入學(xué)年份'].gt(2017)]
4.篩選除姓名’王五’外的數(shù)據(jù)
①第一種方法,用比較運(yùn)算符‘!=’:
data[data.姓名!='王五']
②第二種方法,用比較函數(shù)’ne’:
data[data['姓名'].ne('王五')]
?。?!數(shù)據(jù)更改?。?!
5.篩選2018年9月的入學(xué)的學(xué)生
data['入學(xué)年份']=data["入學(xué)年份"].astype('datetime64') #如果已為日期格式則此步驟可省略 print(data['入學(xué)年份']) import datetime s_date = datetime.datetime.strptime('2018-08-31', '%Y-%m-%d').date() #起始日期 e_date = datetime.datetime.strptime('2018-10-01', '%Y-%m-%d').date() #結(jié)束日期
①第一種方法,用邏輯運(yùn)算符號(hào)’>’ ‘<‘和’&’:
Pandasdatetime64[ns]不能直接與datetime.date相比,需要用pd.Timestamp進(jìn)行轉(zhuǎn)化
data[(data.入學(xué)年份>pd.Timestamp(s_date))&(data.入學(xué)年份<pd.Timestamp(e_date))]
②第二種,用比較函數(shù)’gt’‘lt’和’&’:
data[(data['入學(xué)年份'].lt(pd.Timestamp(e_date)))&(data['入學(xué)年份'].gt(pd.Timestamp(s_date)))]
③第三種,用apply函數(shù)實(shí)現(xiàn):
id_a=data.入學(xué)年份.apply(lambda x: x.year ==2018 and x.month==9) data[id_a]
④第四種,用between函數(shù)實(shí)現(xiàn):
id_b=data.入學(xué)年份.between(pd.Timestamp(s_date),pd.Timestamp(e_date)) data[id_b]
6.篩選“班級(jí)”包含’1503’的數(shù)據(jù)
①第一種,用contains函數(shù):
data['班級(jí)']=data['班級(jí)'].values.astype('str') #將該列轉(zhuǎn)換為字符數(shù)據(jù)類型 id_c=data.班級(jí).str.contains('1503',na=False) data[id_c]
②第二種,用isin函數(shù):
id_i=data.類別ID.isin(['000']) #接受一個(gè)列表 data[id_i] #isin函數(shù)搞不定,因?yàn)樗荒芘袛嘣摿兄性厥欠裨诹斜碇?/pre>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)生成多種有規(guī)律的數(shù)字序列
在?Python?編程中,生成數(shù)字序列是一項(xiàng)常見(jiàn)且重要的任務(wù),本文將深入探討如何使用Python中的內(nèi)置函數(shù)、列表推導(dǎo)式、生成器等方式來(lái)生成多種有規(guī)律的數(shù)字序列,需要的可以參考下2024-03-03搭建?Selenium+Python開(kāi)發(fā)環(huán)境詳細(xì)步驟
這篇文章主要介紹了搭建?Selenium+Python開(kāi)發(fā)環(huán)境詳細(xì)步驟的相關(guān)資料,需要的朋友可以參考下2022-10-10對(duì)Python _取log的幾種方式小結(jié)
今天小編就為大家分享一篇對(duì)Python _取log的幾種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07PyQt教程之自定義組件Switch?Button的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了PyQt中如何實(shí)現(xiàn)自定義組件Switch?Button,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2023-05-05使用Python創(chuàng)建LNK文件選擇器并導(dǎo)出配置文件
在這篇博客中,我將介紹如何使用Python的wxPython庫(kù)開(kāi)發(fā)一個(gè)GUI應(yīng)用程序,該應(yīng)用程序可以選擇文件夾中的.lnk(快捷方式)文件,并將選中的文件導(dǎo)出為特定格式的buttons.ini配置文件,需要的朋友可以參考下2025-01-01