dataframe筛选列名_python 查看列名_Pandas 库之 DataFrame - Python学习笔记
1 简介DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位,具体方法在后面细说。2 创建DataFrame首先声明一下,以下都是使用的Python 3.6.5版本为例,Python2应该也差不多吧(大概在所有操作之前当然要先import必要的pandas库,因为pandas常与numpy一起配合使用,所以也一起import吧。import pandas as pd import numpy as np如果还没安装直接在cmd里pip安装吧,如果有版本选择问题,参看之前的帖子。pip install pandas pip install numpy2.1 直接创建#可以直接使用pandas的DataFrame函数创建,比如接下来我们随机创建一个4*4的DataFrame。df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD'))其中第一个参数是存放在DataFrame里的数据,第二个参数index就是之前说的行名(或者应该叫索引?),第三个参数columns是之前说的列名。后两个参数可以使用list输入,但是注意,这个list的长度要和DataFrame的大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置。而且发现,这两个list是可以一样的,但是每行每列的名字在index或columns里要是唯一的。使用python自己的shell展示创建的结果是这样的:
或者在jupyter里面更酷点的样子,接下来都使用jupyter输出展示吧。
当然,如果你的数据量贼小,也可以自己输入创建,类似这样。df2=pd.DataFrame([[1,2,3,4],[2,3,4,5], [3,4,5,6],[4,5,6,7]], index=list('ABCD'),columns=list('ABCD'))这样也可以得到这样子的DataFrame:
2.2 使用字典创建#仍然是使用DataFrame这个函数,但是字典的每个key的value代表一列,而key是这一列的列名。比如这样。dic1={'name':['小明','小红','狗蛋','铁柱'],'age':[17,20,5,40],'gender':['男','女','女','男']} df3=pd.DataFrame(dic1)输出结果是这样的
3 查看与筛选数据python没有matlab的工作区直接查看变量与内容,这大概是python科学计算的一个缺点。所以需要格外的代码来查看,最基本的直接写变量名与print就不说了。3.1 查看列的数据类型#使用dtypes方法可以查看各列的数据类型,比如说刚刚的df3。df3.dtypes输出的结果是这样:
3.2 查看DataFrame的头尾#使用head可以查看前几行的数据,默认的是前5行,不过也可以自己设置。使用tail可以查看后几行的数据,默认也是5行,参数可以自己设置。比如随意设置一个6*6的数据,只看前5行。df4=pd.DataFrame(np.random.randn(6,6)) df4.head()
比如只看前3行。df4.head(3)
比如看后5行。df4.tail()
比如只看后2行。df4.tail(2)
3.3 查看行名与列名#使用index查看行名,columns查看列名。具体由例子感受吧。查看行名。df1.index
查看列名。df3.columns
3.4 查看数据值#使用values可以查看DataFrame里的数据值,返回的是一个数组。比如说查看所有的数据值。df3.values
比如说查看某一列所有的数据值。df3['name'].values
还有另一种操作,使用loc或者iloc查看数据值(但是好像只能根据行来查看?)。区别是loc是根据行名,iloc是根据数字索引(也就是行号)。比如说这样。df1.loc['A']
或者这样。df1.iloc[0]
按列进行索引查看数据还能直接使用列名,但这种方法对行索引不适用。df3['name']
3.5 查看行列数#使用shape查看行列数,参数为0表示查看行数,参数为1表示查看列数。df3.shape[0]
df3.shape[1]
4 基本操作DataFrame有些方法可以直接进行数据统计,矩阵计算之类的基本操作。4.1 转置#直接字母T,线性代数上线。比如说把之前的df2转置一下。df3.T
4.2 描述性统计#使用describe可以对数据根据列进行描述性统计。比如说对df1进行描述性统计。df1.describe()
如果有的列是非数值型的,那么就不会进行统计。如果想对行进行描述性统计,请参看4.1(转置后进行describe呀!)4.3 计算#使用sum默认对每列求和,sum(1)为对每行求和。比如df3.sum()
可以发现就算元素是字符串,使用sum也会加起来。df3.sum(1)
而一行中,有字符串有数值则只计算数值。数乘运算使用apply,比如。df2.apply(lambda x:x*2)
如果元素是字符串,则会把字符串再重复一遍。乘方运算跟matlab类似,直接使用两个*,比如。df2**2
乘方运算如果有元素是字符串的话,就会报错。4.4 新增#扩充列可以直接像字典一样,列名对应一个list,但是注意list的长度要跟index的长度一致。df2['E']=['999','999','999','999'] df2
还可以使用insert,使用这个方法可以指定把列插入到第几列,其他的列顺延。df2.insert(0,'F',[888,888,888,888]) df2
4.5 合并#使用join可以将两个DataFrame合并,但只根据行列名合并,并且以作用的那个DataFrame的为基准。如下所示,新的df7是以df2的行号index为基准的。df6=pd.DataFrame(['my','name','is','a'],index=list('ACDH'),columns=list('G')) df6 df7=df2.join(df6) df7
但是,join这个方法还有how这个参数可以设置,合并两个DataFrame的交集或并集。参数为'inner'表示交集,'outer'表示并集。df8=df2.join(df6,how='inner') df8 df9=df2.join(df6,how='outer') df9
如果要合并多个Dataframe,可以用list把几个Dataframe装起来,然后使用concat转化为一个新的Dataframe。df10=pd.DataFrame([1,2,3,4],index=list('ABCD'),columns=['a']) df11=pd.DataFrame([10,20,30,40],index=list('ABCD'),columns=['b']) df12=pd.DataFrame([100,200,300,400],index=list('ABCD'),columns=['c']) list1=[df10.T, df11.T, df12.T] df13=pd.concat(list1) df13
作者: 败北桑出处:https://www.cnblogs.com/IvyWong/p/9203981.html版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
dataframe筛选列名_python 查看列名_Pandas 库之 DataFrame - Python学习笔记相关推荐
- Python学习笔记:requests库
Python学习笔记:requests库 利用requests这个功能强大的网络请求库,可以像浏览器一样发送各种HTTP请求来获取网站的数据. 一.运行环境 1.系统版本:Windows 10 2.P ...
- Python学习笔记第四十八天(NumPy 矩阵库(Matrix))
Python学习笔记第四十八天 NumPy 矩阵库(Matrix) 转置矩阵 matlib.empty() numpy.matlib.ones() numpy.matlib.eye() numpy.m ...
- Python学习笔记(十七)——Pandas库
数组只能存储一种类型的数据, 同时, 数组提供了许多方便统计计算的功能 (如平均值 mean .标准差 std 等) pandas与numpy的区别 pandas 是基于 numpy 数组构的, 但 ...
- Python学习笔记: Python 标准库概览二
本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python 简介 Python流程介绍:深入Python 流程 Python数据结构 ...
- Python学习笔记011_模块_标准库_第三方库的安装
容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...
- oracle强制拉库跳过recovery,学习笔记:Oracle坏块 数据库recover恢复时遇到坏块的解决思路案例...
天萃荷净 recover遇到坏块处理本质探讨,记录一次在Oracle数据库recover恢复过程中,遇到数据库坏块无法恢复的解决思路案例 如果在还原出来的数据文件中有坏块,而归档日志和联机日志是正常的 ...
- python3第三方库手册_python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑...
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...
- 学python去吧_Python教父推荐的一份Python学习清单,秀儿拿走学去吧,最适合你
站在风口上,猪都能飞起来.人工智能风口,让Pyhon这门胶水语言转变成非常火的网红语言. 编程功力深厚的程序员花一两个星期就能上手Python,而一些新手程序员花几个月就可以上手. 学编程,用Pyth ...
- python人像录制加声音_Python教父推荐的一份Python学习清单,秀儿拿走学去吧,最适合你...
站在风口上,猪都能飞起来.人工智能风口,让Pyhon这门胶水语言转变成非常火的网红语言. 编程功力深厚的程序员花一两个星期就能上手Python,而一些新手程序员花几个月就可以上手. 学编程,用Pyth ...
- python dataframe取列名_python – 获取列名在DataFrame中按其值排序
我有一个庞大的数据框,我想创建一个字典.字典的键将是行的索引,值将是按该行中的值(降序)排序的数据帧的列名列表.考虑以下示例: df= 23 45 12 3 6 45 0.2 1 0.12 0.5 0 ...
最新文章
- Python如何调用matlab函数?
- 1、利用蓝牙定位及姿态识别实现一个智能篮球场套件(一)——用重写CC2541透传模块做成智能手环...
- 与Andrey Breslav谈论Kotlin 1.0的发布
- iptables实现字符串匹配
- 5.1 最小二乘法,左逆,投影矩阵
- WPF 绑定StaticResource到控件的方法
- 5分钟看懂,未来1年web前端新趋势,都在这了!!!
- matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
- C与C++的区别简答
- 详解HTML5网页结构
- v8go 库手动编译 v8 golang 库手动编译
- 鸡肋的 Nero BurnLite 10
- bdfg的matlab仿真模型,无刷双馈风力发电机变速恒频控制研究
- API激光跟踪仪SDK基础使用
- 操作系统——四种进程调度算法模拟实现(C语言)
- deepin安装过程
- scrapy提高爬取速度
- 国内源代码安全漏洞检测工具现状浅析
- 移动开发技术(Android)——实验8 SQLite数据库的使用
- 队列的介绍和实现(C语言实现)