Pandas 基础(2) - Dataframe 基础
上一节我们已经对 Dataframe 的概念做了一个简单的介绍, 这一节将具体看下它的一些基本用法:
首先, 准备一个 excel 文件, 大致内容如下, 并保存成 .csv 格式.
然后, 在 jupyter notebook 里执行如下代码:
#引入 pandas 模型
import pandas as pd
# 读取 csv 文件
df = pd.read_csv('weather_data.csv')
# 打印
df
在 jupyter notebook 里的表现形式大概如下:
就这么简单, 我们就把一个 csv 文件转换成 dataframe 格式了. 这里大家在操作中可能遇到的一个报错就是找不到文件. 这是路径问题, 解决方法很简单, 打开你运行 jupyter 的终端窗口, 找到如下路径, 把你的 csv 文件丢进去就可以啦. 
OK, 上面介绍了如何将外部文件转换成 dataframe. 下面介绍从 python dictionary 转换成 dataframe:
# python dictionary
weather_data = {
'day': ['1/1/2017', '1/2/2017', '1/3/2017', '1/4/2017', '1/5/2017', '1/6/2017'],
'temperature': [32, 35, 27, 25, 24, 30],
'windspeed': [6, 7, 2, 5, 4, 6],
'event': ['Rain', 'Sunny', 'Snow', 'Snow', 'Rain', 'Sunny']
}
# 转换
df = pd.DataFrame(weather_data)
打印
df
运行结果:
可以说, 两种方式都非常的简便, 下面就基于上面的数据看一下 dataframe 有哪些属性可以供我们使用.
df.shape
输出:
(6, 4)
这里是查看这个 dataframe 的行数和列数, 显然, 我们这个例子中, 有 6 行, 4 列. 那么我们还可以把这个结果同时赋值给两个变量, 再分别查看这两个变量的值:
rows, columns = df.shape
rows
输出:
6
columns
输出:
4
# 查看前5行数据
df.head()
# 查看后5行数据
df.tail()
# 查看后 3 行数据
df.tail(3)
# 查看 第 2,3,4 行的数据
df[2:5]
# 查看所有数据
df[:]
# 查看所有列
df.columns
# 查看某一列方法一, 只适用于列名中间没有空格的
df.day
# 查看某一列方法二, 适用于所有列名
df['event']
# 查看某一列的类型, 这里输出的结果是 pandas.core.series.Series, 表示每一列都是一个 series
type(df['event'])
# 查看两个列以上的数据, 注意这里要用两个中括号
df[['event', 'day']]
以上就是 dataframe 的一些基本属性. 下面介绍一些操作命令
# 求某一列里的最大值
df['temperature'].max()
# 求某一列的平均值
df.temperature.mean()
# 查看 temperature 大于 30 的数据
df[df.temperature>30]
# 查看 temperature 等于最大值的数据
df[df.temperature==df.temperature.max()]
# 只查看 temperature 等于最大值的日期, 有下面两种写法
df['day'][df.temperature==df.temperature.max()]
df.day[df.temperature==df.temperature.max()]
# 查看 temperature 等于最大值的日期和温度
df[['day', 'temperature']][df.temperature==df.temperature.max()]
# 查看目前的索引
df.index
# 设置索引, 这里注意必须加上第二个参数, 以确保真正更改到 df 的索引
df.set_index('day', inplace=True)
# 基于上面把 'day' 设为索引, 就可以具体查看某一行的数据
df.loc['1/4/2017']
# 重置索引
df.reset_index(inplace=True)
# 把索引设置为 'event', 这里要说明两个问题, 第一, 更新索引必须在重置索引的前提下, 否则 'day'列就消失了, 第二, 任何列都可以被设置为索引
df.set_index('event', inplace=True)
最后再介绍一个命令, 这里就是会输出所有数字内容的列, 并且罗列出一些基本常用的运算结果.
OK, 以上就是对 dataframe 的基本用法的介绍.
大家如果有任何问题或者意见或者不同看法, 欢迎留言呦. 期待跟大家一起学习讨论.
See you!!!
Pandas 基础(2) - Dataframe 基础的更多相关文章
- 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- MYSQL、PHP基础、面向对象基础简单复习总结
一.MYSQL 1.配置MySql 第一步安装服务器(apache). 第二部安装MySql界面程序 2 ...
- pandas 学习(2): pandas 数据结构之DataFrame
DataFrame 类型类似于数据库表结构的数据结构,其含有行索引和列索引,可以将DataFrame 想成是由相同索引的Series组成的Dict类型.在其底层是通过二维以及一维的数据块实现. 1. ...
- Jmeter基础之---jmeter基础概念
Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换
[.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形 ...
- [.net 面向对象编程基础] (5) 基础中的基础——变量和常量
[.net面向对象编程基础] (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...
- [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式
[.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...
- [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句
[.net 面向对象编程基础] (7) 基础中的基础——流程控制语句 本来没有这一节的内容,后来考虑到既然是一个系列文章,那么就尽可能写的详细一些,本节参考了网上朋友所写的例子,为的是让更多小伙伴学习 ...
随机推荐
- bzoj1625 [Usaco2007 Dec]宝石手镯
01背包 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring& ...
- 怎样从外网访问内网Linux系统?
本地安装了一个Linux系统,只能在局域网内访问到,怎样从外网也能访问到本地的Linux系统呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 启动Linux系统 默认Linux系统ssh服务端端 ...
- 控制层和ajax用法的详解
商城项目第二天复习的内容 package cn.tedu.store.entity; public class ResponseResult<T> { public static fina ...
- MySQL笔记(八)存储过程练习&补充
存储过程有什么优缺点?为什么要用存储过程?或者在什么情况下才用存储过程? 最直白的好处是存储过程比较快. 1.利用存储过程,给Employee表添加一条业务部门员工的信息. DROP PROCEDUR ...
- AngularJS的简单入门
AngularJS诞生于2009年,由Misko Hevery等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心 ...
- php 阳历转农历优化版
网上转换方法很多例子错误. 测试例子1:输入公历 2010年2月1号测试,对比百度万年历 农历应该为己丑年(2009)腊月(12月)十八. 测试例子2:输入农历1990.11.初十,丑时,公历应该为1 ...
- jquery photoClip支持手机端,PC端 本地裁剪图片后上传插件
支持手机,PC最好的是jquery photoClip插件,下载地址&示例:https://github.com/topoadmin/photoClip demo.html 代码: <! ...
- Django设计模式
单例模式: 建造者模式: 示例: from enum import Enum import time PizzaProgress = Enum('PizzaProgress', 'queued pre ...
- Zookeeper注册中心的搭建
一.Zookeeper的介绍 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用 ...
- hdu 1811 Rank of Tetris - 拓扑排序 - 并查集
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜, ...