pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算
本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包。测试数据已放云盘:链接:https://pan.baidu.com/s/1zozpY2BUTIvEJKf238leZg 密码:44zg。如需按照numpy,可以百度搜索如何安装。
1记录抽取
根据一定的条件,对数据进行抽取。使用函数为:dataframe[condition],其中
condition:过滤条件,返回值为一个DataFrame。常用的条件类型有以下几种。
下图为测试的原始数据:
比较运算:大于(>),小于(<),大于等于,小于等于,不等于,例如:df[df.comments>1000];
#导包
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[df.comments>10000]
结果:
范围运算:between(left,right)(需要注意的是可取到边界值),例如:df[df.comments.between(100,1000)];
#导包
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[df.comments.between(1000,5000)]
结果:
空值匹配:pandas.isnull(column),如:df[pandas.isnull(df.title)];
#导包
import pandas
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[pandas.isnull(df.title)]
结果:
字符匹配:str.contains(patten,na=Flase),例如df[df.title.str.contains(‘台电’,na=False)];
#导包
import pandas
from pandas import read_csvdf=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)
返回布尔值的一个列。
结果:
逻辑运算:与(&),或(|),取反(not),例如:df[(df.comments>=100)&(df.comments<=200)],这个表达式与df[df.comments.between(100,200)]等价。
import pandas
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data4.csv",sep="|")
newDf=df[(df.comments>=1000)&(df.comments<=5000)]
结果:
2随机抽样
随机从数据中,按照一定的行数或者比例抽取数据,这里使用numpy函数:numpy.random.randint(start,end,num),其中
start:范围的开始值
end:范围的结束值
number:抽样个数
返回值为:行数的索引值序列
#导包
import pandas
import numpy as np
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data5.csv")
#获取随机值
r=np.random.randint(0,10,3)
#对行进行切片
newDf=df.loc[r,:]
结果:
3记录合并
将两个结构相同的数据框,合并成一个数据框。使用合并函数:concat([dataFrame1,dataFrame2,…]),返回值为一个DataFrame。
#导包
import pandas
from pandas import read_csvdf1=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])
原始数据集:
合成后数据:
4 字段合并
将同一个数据框中的不同列,进行合并,形成新的列。X=x1+x2+...X=x1+x2+...X=x_1+x_2+...,返回一个序列。这些序列结构要保持一致。
#导包
from pandas import read_csvdf=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']
原始数据
合并后数据:
5字段匹配
将不同结构的数据框,按照一定的条件进行合并。再python中,我们常用merge(x,y,left_on,right_on)进行匹配,其中
x:第一个数据框
y:第二个数据框
left_on:第一个数据框用于匹配的列
right_on:第二个数据框用于匹配的列
返回值为一个DataFrame
#导包
import pandas;
from pandas import read_csvitems=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')
数据融合前后对比:
6数据的简单计算
通过对字段进行加减乘除等四则运算,计算出来需要的字段。
#导包
import pandas;
from pandas import read_csvdf=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data12.csv",sep="|")df['sum']=df.price*df.num
数据计算前后对比
pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算相关推荐
- python column stack_Python基础 | pandas中dataframe的整合与形变(merge reshape)
[toc] 本文示例数据下载,密码:vwy3 import pandas as pd # 数据是之前在cnblog上抓取的部分文章信息 df = pd.read_csv('./data/SQL测试用数 ...
- Pandas中DataFrame基本函数整理(全)
[python]Pandas中DataFrame基本函数整理(全) 构造函数 DataFrame([data, index, columns, dtype, copy]) #构造数据框 属性和数据 D ...
- pandas中DataFrame的ix,loc,iloc索引方式的异同
pandas中DataFrame的ix,loc,iloc索引方式的异同 1.loc: 按照标签索引,范围包括start和end 2.iloc: 在位置上进行索引,不包括end 3.ix: 先在inde ...
- Python—pandas中DataFrame类型数据操作函数
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFram ...
- pandas中dataframe默认不显示所有的数据行(中间省略)、使用option_context函数自定义设置单个dataframe允许显示的行的个数、set_option函数全局设置显示行的个数
pandas中dataframe默认不显示所有的数据行(中间省略).使用option_context函数自定义设置单个dataframe允许显示的行的个数.set_option函数全局设置显示行的个数 ...
- Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件
Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件.zip压缩文件 目录 Python将Pandas中Dataframe数据保存为gzip/zip文件:gz ...
- pandas中dataframe索引排序实战:pandas中dataframe索引降序排序、pandas中dataframe索引升序排序
pandas中dataframe索引排序实战:pandas中dataframe索引降序排序.pandas中dataframe索引升序排序 目录
- Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
Python之pandas:对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 目录 对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 知识点学习 输 ...
- python查看dataframe数据类型_python pandas中DataFrame类型数据操作函数的方法
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数 ...
最新文章
- php程序耗时是负数,php 代码测试,代码越在前面越耗时
- 这么小的key-val数据库居然也支持事务——与短跑名将同名的数据库Bolt
- Spring ORM数据訪问——Hibernate
- 6. Qt 信号与信号槽(1)
- SqlBulkCopy加了事务真的会变快吗?
- web应用的目录结构
- 20179214 《网络攻防实践》第五周学习
- 极客学院视频源码资料
- 简述台式计算机组装的基本步骤,《计算机组装与维修》期中考试试卷答案
- java yml文件_yml文件内容映射到pojo
- 判断一个整数是不是回文
- html转义字符表(转)
- Android 项目正式签名打包教程
- win10重装系统后Mysql环境和数据的恢复(无需重装Mysql)
- Illegal character
- 小型水果店开业活动,水果店刚开业怎么做活动
- 计算机域名怎么查看?如何查看电脑域名?
- Java开发项目常见BUG
- 计算之魂算法复杂度的相关概念
- 通过搜狗抓取微信公众号--------破解url