本文测试使用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使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算相关推荐

  1. python column stack_Python基础 | pandas中dataframe的整合与形变(merge reshape)

    [toc] 本文示例数据下载,密码:vwy3 import pandas as pd # 数据是之前在cnblog上抓取的部分文章信息 df = pd.read_csv('./data/SQL测试用数 ...

  2. Pandas中DataFrame基本函数整理(全)

    [python]Pandas中DataFrame基本函数整理(全) 构造函数 DataFrame([data, index, columns, dtype, copy]) #构造数据框 属性和数据 D ...

  3. pandas中DataFrame的ix,loc,iloc索引方式的异同

    pandas中DataFrame的ix,loc,iloc索引方式的异同 1.loc: 按照标签索引,范围包括start和end 2.iloc: 在位置上进行索引,不包括end 3.ix: 先在inde ...

  4. Python—pandas中DataFrame类型数据操作函数

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构.  本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数.  1)查看DataFram ...

  5. pandas中dataframe默认不显示所有的数据行(中间省略)、使用option_context函数自定义设置单个dataframe允许显示的行的个数、set_option函数全局设置显示行的个数

    pandas中dataframe默认不显示所有的数据行(中间省略).使用option_context函数自定义设置单个dataframe允许显示的行的个数.set_option函数全局设置显示行的个数 ...

  6. Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件

    Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件.zip压缩文件 目录 Python将Pandas中Dataframe数据保存为gzip/zip文件:gz ...

  7. pandas中dataframe索引排序实战:pandas中dataframe索引降序排序、pandas中dataframe索引升序排序

    pandas中dataframe索引排序实战:pandas中dataframe索引降序排序.pandas中dataframe索引升序排序 目录

  8. Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

    Python之pandas:对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 目录 对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 知识点学习 输 ...

  9. python查看dataframe数据类型_python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数 ...

最新文章

  1. php程序耗时是负数,php 代码测试,代码越在前面越耗时
  2. 这么小的key-val数据库居然也支持事务——与短跑名将同名的数据库Bolt
  3. Spring ORM数据訪问——Hibernate
  4. 6. Qt 信号与信号槽(1)
  5. SqlBulkCopy加了事务真的会变快吗?
  6. web应用的目录结构
  7. 20179214 《网络攻防实践》第五周学习
  8. 极客学院视频源码资料
  9. 简述台式计算机组装的基本步骤,《计算机组装与维修》期中考试试卷答案
  10. java yml文件_yml文件内容映射到pojo
  11. 判断一个整数是不是回文
  12. html转义字符表(转)
  13. Android 项目正式签名打包教程
  14. win10重装系统后Mysql环境和数据的恢复(无需重装Mysql)
  15. Illegal character
  16. 小型水果店开业活动,水果店刚开业怎么做活动
  17. 计算机域名怎么查看?如何查看电脑域名?
  18. Java开发项目常见BUG
  19. 计算之魂算法复杂度的相关概念
  20. 通过搜狗抓取微信公众号--------破解url

热门文章

  1. 判断输入是否为回车键
  2. mPEG-Epoxide MPEG-EP 甲氧基PEG环氧乙烷
  3. 炫酷的动画特效—css3旋转立方球体
  4. 一个开源的论坛系统AstalPathTalk
  5. java随堂练习07,练习数组
  6. 2020年12月1日 misc wp
  7. 腾讯云海外直播系统架构是怎么设计的?(附视频回放)
  8. uniapp实现onShow获取页面传递参数方法
  9. uniapp图片详情
  10. SAP行业未来的发展如何,和chatGPT聊聊SAP行业的发展前景