pandas 数据结构与基础功能

目录

一、series 对象

1、生成

2、切片

3、series类型的转换

二、DataFrame(数据框)对象

1、生成

2、导入外部文件

3、查看数据框信息

4、数据框对象的索引和切片

5、删除和新增

6、数据框修改列名

7、数据框对象的导出

一、series 对象

1、生成
import pandas as pd
import numpy as nppd.Series([1,2,‘a’])  # Series 中 首字母s要大写
0    1
1    2
2    a
dtype: object         # 和数组对比,它不会转换数据类型,默认是object
2、切片
# 一般索引
c = pd.Series(np.random.rand(10)) #随机生成一列数据
c
c[0:8:2]         #0-8是范围(左闭右开),2是步长
# 重命名索引
d=pd.Series(np.random.rand(5),index=list('abcde'))  # 重新命名索引为‘abcde’
d
d['a':'c']   # 当使用重新命名的索引切片,这时候切片的右边也是包含的
# 布尔索引
d[d>0.2]         #索引时,中括号中可以是具体的值,也可以是判断条件
3、series类型的转换
# astype 方法  数据类型转换
a = pd.Series(['1','2','a'])
a.astype(np.float,errors='ignore')

astype 方法需要注意errors参数, 这个参数有两个可能取值,一个是"raise",一个是"ignore"。 raise的意思是如果在转化过程中出现错误, 则抛出一个错误提示,并停止程序执行。 "ignore"的意思是如果在转化过程中出现错误,则忽略这个错误, 对出错的单元格保持原来的类型,只对没有出现错误的单元格进行转换。 因此如果出现转化错误,则这个series的类型为object。

# pd.to_numeric 方法  数据类型转换
pd.to_numeric(a,errors='coerce')    # errors 这个参数有三个可能取值,分别是'ignore', 'raise', 'coerce'(强迫), 默认的取值是 'raise'.
# map 方法 不会改变原有数据
a=pd.Series(["1","2","a"])
def f1(x):try:v=float(x)except:v=np.nanreturn v
a.map(f1)
0    1.0
1    2.0
2    NaN
dtype: float64  # 转换成浮点型
# map 计算
b = pd.Series([1,2,3])
b.map(lambda x:x+2)
Out[21]:
0    3
1    4
2    5
dtype: int64

二、DataFrame(数据框)对象

1、生成
#数据框可以用colunmns函数重命名列
data1=pd.DataFrame(np.random.rand(5,3),columns=(['a','b','c']))
data1
2、导入外部文件
# 导入文件和工作文件在一个文件夹省略地址,直接写文件名
pd.read_csv('D:/数分学习资料/python/数据清洗/pandas/individual1.csv',encoding='GBK')
3、查看数据框信息
a.info()   # 查看数据框a 的基本信息
a.head(3)  # 查看数据框a前三行
a.tail(3)  # 查看数据框a后三行
a.shape    # 返回维度
a.columns  # 返回所有变量的名字
a.index   # 返回索引值
a.values  # 返回具体的元素,数组形式
a.T      # 数据框对象的转置
4、数据框对象的索引和切片
#切取列
data1['a']   # a为列名,以下都为列名
data1.a      # 列名字为字符串可以用这个方法,数值就不行
data1[['a','c']]   # 切取两列
# 切取行
data1[0:1]   # 切取行必须用冒号,左包含右不包含,列名和行名不参与切片
# loc 方法 :显式索引  可同时切行和列
data1.loc[:,'x1':'x2']  # 切取x1和x2两列
data1.loc[['a','b'],['x1','x2']]   # 切取a,b两行和x1、x2两列# iloc 隐式索引
data2.iloc[0:2,0:1]  # 左包含右不包含# ix 方法  显式和隐式
data2.ix[0:2,'x1':'x2']
#布尔索引
data1[data1.x1>0.5]   #  返回x1中大于0.5的行
data1[(data1['x1']>0.5) | (data1['x2']<0.5)]  #返回x1中大于0.5和x2中小于0.5的行
5、删除和新增
# 删除列
data1.pop('x3')              # 当删除对象不存在就会报错
data1.drop(columns=['x2'],axis=1,inplace=False)  # 删除列时,输入axis=1,删除行时,输入axis=0
#新增列
data1['z1']=10   # 新增z1列,值为10
data1["z2"]=data1["x2"]**2
data1['x2'].rank(method='first',ascending=False) #method参数用来设置遇到相同值的时候如何计算秩
# 生成一列并降序排序,ascending 默认为升序 ,=false就是降序# map 方法
data1['z3']=data1['x2'].map(lambda x:x**2) # apply 方法
data1.apply(lambda x:max(x.x2,x.x3),axis=1) #新增一列,新增列取x2和x3中的较大值做为元素
axis=1,生成列,axis=0 ,生成行# applymap 方法
data1=pd.DataFrame(np.random.randint(3,6,(3,2)),columns=['x1','x2'])
data1.applymap(lambda x:x+2)
6、数据框修改列名
#rename 方法
data1=pd.DataFrame(np.random.rand(4,3),columns=['x1','x2','x3'])  # 随机生成一个数据框
data1.rename(columns={"x1":"z1","x2":"z2"})   # 修改列名,x1→z1,x2→z2
7、数据框对象的导出
data1.to_csv('test.csv',index=False)  #index=False,索引列不会显示

pandas 数据结构与基础功能相关推荐

  1. dataframe一列按长度补0_Pandas中Series和DataFrame基础功能详解

    作者:Zarten知乎专栏:python数据分析与挖掘深入详解知乎ID: Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 ! 概述 这 ...

  2. Pandas数据结构

    Pandas数据结构 "一维数组"Serise Series "系列" Series 数据结构 Series 是带有标签的一维数组,可以保存任何数据类型(整数, ...

  3. pandas 入门(pandas 数据结构介绍)

    pandas 数据结构介绍 一.pandas 基础数据结构 1.pandas 中主要有两种数据结构:Series 和 DataFrame. 2.Series:一种一维的数组型对象,它包含了一个值序列( ...

  4. Go语言实战之数组的内部实现和基础功能

    写在前面 嗯,学习GO,所以有了这篇文章 博文内容为<GO语言实战>读书笔记之一 主要涉及数组相关知识 世上除了爹娘,再没有人是理所应当对你好的. --烽火戏诸侯<剑来> 数组 ...

  5. 【数据结构】基础:二叉树

    [数据结构]基础:二叉树基础 摘要:本文将会介绍二叉树的基础内容,首先引入树的概念,了解树的基本概念与性质,再对二叉树的概念和性质进行分析,最后对其方法进行实现,最重要的是理解对于二叉树方法实现的分治 ...

  6. 【pandas数据分析】pandas数据结构

    文章目录 Series 创建Series 从dict创建 从ndarray创建 从标量创建 Series的特性 类ndarray 类dict 向量化操作与标签对齐 名称属性 DataFrame 创建D ...

  7. 服务器开发系列(三)——Linux与Windows操作系统基础功能对比

    系列文章目录 服务器开发系列(一)--计算机硬件 服务器开发系列(二)--Jetson Xavier NX 文章目录 系列文章目录 前言 一.操作系统概述 二.Linux和Windows的应用场景 三 ...

  8. PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解

    目录 前言 一.PySpark基础功能 1.Spark SQL 和DataFrame 2.Pandas API on Spark 3.Streaming 4.MLBase/MLlib 5.Spark ...

  9. Python-Pandas{数据结构与基本功能}

    Pands Series 手动构建Series Series的索引和切片 按照字典的方式进行索引和切片 增加数据和删除数据 小练习: 广播的方法进行计算 DataFrame DataFrame的创建 ...

  10. python数据分析包pandas论文_python数据分析pandas包入门学习(一)pandas数据结构介绍...

    本文参考<利用python进行数据分析>的第五章 pandas入门python 1 pandas数据结构介绍 pandas有两种主要的数据结构:series和DataFrame Serie ...

最新文章

  1. GAN——UNIT简单梳理
  2. 关于oracle中to_char和to_date的用法
  3. IDEA中找不到maven插件Plugin ‘org.apache.tomcat.maven:tomcat7-maven-plugin:2.2‘ not found
  4. 进程间通信 - 命名管道实现
  5. html输入框只能输入几个,input 两个input框只能允许同时输入一个
  6. nodejs 之 nvm和pm2
  7. python打印字节流_java打印流的输出使用
  8. volume image
  9. vue+ 高德地图 热力图
  10. CARBON X1 安装 chrome os
  11. 1960-2018年世界各国GDP排名变化--Python动图实现
  12. android 应用变量,真正免root的应用变量详细使用教程
  13. 电脑如何录屏?分享4个屏幕录制的好方法,建议收藏
  14. 正常人小气道上皮细胞 Small airway epithelial cells
  15. Android测试——(下篇)
  16. 浏览器插件:脚本注入插件Tampermonkey(油猴)
  17. Windows10创建还原点备份系统(解决类似网络重置网卡错误代码56问题!!!)
  18. Git 各指令的本质,真的是通俗易懂!
  19. Python爬虫简单运用爬取代理IP
  20. 关于游戏陪玩系统源码后台管理系统前端项目的思考

热门文章

  1. EXCEl快速删除大量空白行
  2. 自由测试人Jarod的一天
  3. 解决 https 证书验证不通过的问题
  4. 详解web容器 - Jetty与Tomcat孰强孰弱
  5. bad interpreter: No such file or directory
  6. Array对象的三种属性实例
  7. 如何面对不讲信用的人
  8. Starling滤镜合集2(新增7种滤镜)
  9. 流言终结者: AWR的保留天数和SYSAUX表空间的使用率有关吗?
  10. windows server 2008 NLB 集群