博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas 基础(2) - Dataframe 基础
阅读量:5769 次
发布时间:2019-06-18

本文共 2201 字,大约阅读时间需要 7 分钟。

上一节我们已经对 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 dictionaryweather_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.shaperows

输出:

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!!!

转载于:https://www.cnblogs.com/rachelross/p/10402490.html

你可能感兴趣的文章
使用sstream读取字符串中的数字(c++)
查看>>
树莓派下实现ngrok自启动
查看>>
javascript静态类型检测工具—Flow
查看>>
MachineLearning-Sklearn——环境搭建
查看>>
node学习之路(二)—— Node.js 连接 MongoDB
查看>>
Goroutine是如何工作的?
查看>>
《深入理解java虚拟机》学习笔记系列——垃圾收集器&内存分配策略
查看>>
TriggerMesh开源用于多云环境的Knative Event Sources
查看>>
GitLab联合DigitalOcean为开源社区提供GitLab CI免费托管
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
Apache下.htaccess文件配置及功能介绍
查看>>