欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

程序员文章站 2022-06-05 20:24:51
...

本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包。测试数据已放云盘:链接:https://pan.baidu.com/s/1zozpY2BUTIvEJKf238leZg 密码:44zg。如需按照numpy,可以百度搜索如何安装。

1记录抽取

根据一定的条件,对数据进行抽取。使用函数为:dataframe[condition],其中

condition:过滤条件,返回值为一个DataFrame。常用的条件类型有以下几种。

下图为测试的原始数据:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

比较运算:大于(>),小于(<),大于等于,小于等于,不等于,例如:df[df.comments>1000];

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[df.comments>10000]

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

范围运算:between(left,right)(需要注意的是可取到边界值),例如:df[df.comments.between(100,1000)];

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[df.comments.between(1000,5000)]

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

空值匹配:pandas.isnull(column),如:df[pandas.isnull(df.title)];

#导包
import pandas
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[pandas.isnull(df.title)]

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

字符匹配:str.contains(patten,na=Flase),例如df[df.title.str.contains(‘台电’,na=False)];

#导包
import pandas
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[df.title.str.contains('台电',na=False)]

df.title.str.contains('台电',na=False)返回布尔值的一个列。

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

逻辑运算:与(&),或(|),取反(not),例如:df[(df.comments>=100)&(df.comments<=200)],这个表达式与df[df.comments.between(100,200)]等价。

import pandas
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[(df.comments>=1000)&(df.comments<=5000)]

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

2随机抽样

随机从数据中,按照一定的行数或者比例抽取数据,这里使用numpy函数:numpy.random.randint(start,end,num),其中

start:范围的开始值

end:范围的结束值

number:抽样个数

返回值为:行数的索引值序列

#导包
import pandas
import numpy as np
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data5.csv")
#获取随机值
r=np.random.randint(0,10,3)
#对行进行切片
newDf=df.loc[r,:]

结果:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

3记录合并

将两个结构相同的数据框,合并成一个数据框。使用合并函数:concat([dataFrame1,dataFrame2,…]),返回值为一个DataFrame。

#导包
import pandas
from pandas import read_csv

df1=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data6.csv")
df2=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data7.csv")
df3=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data8.csv")
newDf=pandas.concat([df1,df2,df3])

原始数据集:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

合成后数据:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

4 字段合并

将同一个数据框中的不同列,进行合并,形成新的列。X=x1+x2+...,返回一个序列。这些序列结构要保持一致。

#导包
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data9.csv",sep=" ",names=['brand','area','num'])
#如果不转为字符型,回对数据进行求和
df=df.astype(str)

tel=df['brand']+df['area']+df['num']

原始数据

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

合并后数据:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

5字段匹配

将不同结构的数据框,按照一定的条件进行合并。再python中,我们常用merge(x,y,left_on,right_on)进行匹配,其中

x:第一个数据框

y:第二个数据框

left_on:第一个数据框用于匹配的列

right_on:第二个数据框用于匹配的列

返回值为一个DataFrame

#导包
import pandas;
from pandas import read_csv

items=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data10.csv",sep="|",names=['id','comments','title'])

prices=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data11.csv",sep="|",names=['id','oldPrice','nowPrice'])

itemPrices=pandas.merge(items,prices,left_on='id',right_on='id')

数据融合前后对比:

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

6数据的简单计算

通过对字段进行加减乘除等四则运算,计算出来需要的字段。

#导包
import pandas;
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data12.csv",sep="|")

df['sum']=df.price*df.num

数据计算前后对比

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

相关标签: pandas dataframe