基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数据集. 所以可以是如下的 dictionary 的形式:

web_stats = {‘Day‘:[1,2,3,4,5,6],
             ‘Visitors‘:[43,34,65,56,29,76],
             ‘Bounce Rate‘:[65,67,78,65,45,52]}

我们可以通过如下方式把这个 dictionary 转换成 dataframe:

import pandas as pd

web_stats = {‘Day‘:[1,2,3,4,5,6],
             ‘Visitors‘:[43,34,65,56,29,76],
             ‘Bounce Rate‘:[65,67,78,65,45,52]}

df = pd.DataFrame(web_stats)

正如上一节所讲的, 现在我们把 df 打印出来看一下它的数据结构:

print(df.head())

输出:

   Bounce Rate  Day  Visitors
0           65    1        43
1           67    2        34
2           78    3        65
3           65    4        56
4           45    5        29

此时, 你可能想要获取最后的几行数据, 可以这样做:

print(df.tail())

输出:

   Bounce Rate  Day  Visitors
1           67    2        34
2           78    3        65
3           65    4        56
4           45    5        29
5           52    6        76

你也可以指定要前几行或者后几行数据:

print(df.tail(2))
   Bounce Rate  Day  Visitors
4           45    5        29
5           52    6        76

正如你所看到的, 输出数据的左边总有一列 0,1,2,3,4,5 的数字. 我们把这些数字叫做"索引". 一个 dataframe 的索引体现了数据的关联关系和排序规则. 或者说, 你希望怎样呈现数据结构. 通常情况下, 这个索引应该是联系所有数据的变量. 在这个例子中, 我们还没有这样定义索引,当你没有明确索引的时候, Pandas 就会自动为你创建一个数字索引. 那么现在我们来看一下这个例子中的数据集, 你是否能看出哪个列的数据是跟所有其他列的数据都能产生关联关系的?

没错, 就是 "Day" 这个列! 通常情况下, 任何关于时间的数据, 都会被用作索引. 但是这并不是绝对的, 主要还是取决于你想怎样呈现数据, 甚至还可以定义多重索引(这个我们后面会介绍). 定义索引有很多方式. 这里我们将介绍两种, 第一种, 在现有的 dataframe 上, 可以这样设置索引:

df.set_index(‘Day‘, inplace=True)

输出:

        Bounce Rate  Visitors
Day
1             65        43
2             67        34
3             78        65
4             65        56
5             45        29

这里的变化是, 最左边的序列号消失了, "Day" 比其他的表头都低了一行, 这意味着 "Day" 成了新的索引. 有一点需要注意的是, 我们使用了 "inplace=True", 这样做是为了切实地改变原来的 dataframe. 如果不用 "inplace=True", 我们需要这样做, 也可以起到更新的作用:

df = df.set_index(‘Day‘)

这个索引列会被用作 x 轴. 如果其他列也都是数字数据, 那么我们可以轻松地通过 plot 打印出图表, 就像我们上节课所讲, 首先在脚本的顶部做如下引入:

import matplotlib.pyplot as plt
from matplotlib import style

style.use(‘fivethirtyeight‘)

然后, 在下面就可以使用 plot 了. 这里还有一个小知识点要介绍的就是关于打印具体某个列, 有两种方式, 下面是第一种方式:

print(df[‘Visitors‘])
Day
1    43
2    34
3    65
4    56
5    29
6    76
Name: Visitors, dtype: int64

第二种方式是可以把每个列都看作是 dataframe 对象的属性, 可以打点调用. 但是这里有一点要注意的是, 这个列的名称不可以有空格:

print(df.Visitors)
Day
1    43
2    34
3    65
4    56
5    29
6    76
Name: Visitors, dtype: int64

现在就来输出一个单独列的图表:

df[‘Visitors‘].plot()
plt.show()

当然, 我们也可以把这个 dataframe 都以图表的形式输出:

df.plot()
plt.show()

我们还可以指定打印具体的某两列(在这个列子中, 我们只有两列, 但是其实不管一共有多少列, 我们都可以这样做):

print(df[[‘Visitors‘,‘Bounce Rate‘]])

当然, 我们也可以将其以图表的形式输出.

另外, 我们还可以把某个列的数据转换成数组:

print(df.Visitors.tolist())

输出:

[45, 34, 56, 67, 98, 34]

一维数组可以直接用 tolist() 函数. 那么, 如果想把两列数转换成二维数组要怎么做呢? 这时, 我们就需要再引入一个包:

import numpy as np
pd2 = np.array(df[[‘Visitors‘, ‘Bounce_Rate‘]])
print(pd2)

输出:

[[45 65]
 [34 89]
 [56 43]
 [67 56]
 [98 73]
 [34 45]]

然后再将这个二维数组转换成 dataframe:

pd2 = pd.DataFrame(np.array(df[[‘Visitors‘, ‘Bounce_Rate‘]]))
print(pd2)

输出:

    0   1
0  45  65
1  34  89
2  56  43
3  67  56
4  98  73
5  34  45

以上就是一些简单的操作 dataframe 的方法.

原文地址:https://www.cnblogs.com/rachelross/p/10376435.html

时间: 2024-11-10 11:25:49

基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础的相关文章

基于Python Spark的大数据分析_pyspark实战项目课程

基于Python Spark的大数据分析(第一期) 课程介绍地址:http://www.xuetuwuyou.com/course/173 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:轩宇老师 1.开课时间:小班化教学授课,第一期开课时间为5月20号(满30人开班,先报先学!): 2.学习方式:在线直播,共8次课,每次2小时,每周2次(周三.六,晚上20:30 - 22:30),提供在线视频,课后反复学习: 3.报名课程后,请联系客服申请加入班级答疑交流QQ群:

打造基于Python的流式数据分析平台

基于Python已经有多个科学研究和数据分析库,使用非常方便.结合OpenStack(http://www.openstack.org).RabbitMQ(http://www.rabbitmq.com).Celery(http://www.celeryproject.org)可以打造一个实时数据的分析平台. OpenStack是基于Python开发的云计算平台,可以进行虚拟机的调度和管理,以及数据的虚拟化存储.RabbitMQ是一个消息总线服务器,支持通过消息的数据快速收发和任务数据的调度.分

Python在金融,数据分析,和人工智能中的应用

Python在金融,数据分析,和人工智能中的应用 Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因.其中包括它的语法.Python开发人员可用的科学生态系统和数据分析库.易于和几乎所有其它技术集成,以及其开源地位. 自 从1991它出现在编程场景中,比于其他编程语言,Python取得了少有的地位.面向对象,容易学习,使用语法,以及由此产生的低维护成本,是 Python持续获得好评的一部分原因.开源是一个很明显的优势,跨平台的有效性,多目标,垃圾回收(自动的),代码的简洁性,

Python在金融,数据分析,和人工智能中的应用 !

Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因.其中包括它的语法.Python开发人员可用的科学生态系统和数据分析库.易于和几乎所有其它技术集成,以及其开源地位.--来自Yves Hilpisch的Python金融大数据分析(姚军译). 自从1991它出现在编程场景中,比于其他编程语言,Python取得了少有的地位.面向对象,容易学习,使用语法,以及由此产生的低维护成本,是Python持续获得好评的一部分原因.开源是一个很明显的优势,跨平台的有效性,多目标,垃圾回收(自动

python数据分析工具——Pandas、StatsModels、Scikit-Learn

Pandas Pandas是 Python下最强大的数据分析和探索工具.它包含高级的数据结构和精巧的工具,使得在 Python中处理数据非常快速和简单. Pandas构建在 Numpy之上,它使得以 Numpy为中心的应用很容易使用.Pandas的功能非常强大,支持类似于SQL的数据增.删.查.改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等. Pandas的安装相对来说比较容易,安装好 Numpy之后,就可以直接安装了,通过pip install pandas或下载

Python 数据分析:Pandas 缺省值的判断

Python 数据分析:Pandas 缺省值的判断 背景 我们从数据库中取出数据存入 Pandas None 转换成 NaN 或 NaT.但是,我们将 Pandas 数据写入数据库时又需要转换成 None,不然就会报错.因此,我们就需要处理 Pandas 的缺省值. 样本数据 id name password sn sex age amount content remark login_date login_at created_at 0 1 123456789.0 NaN NaN NaN 20

基于Python数据分析与机器学习案例实战教程

课程--基于Python数据分析与机器学习案例实战教程 分享网盘下载--https://pan.baidu.com/s/1jHSaRAY 密码: xk37 课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习算法并通过对真实数据集分析进行实战演示. 课程风格通俗易懂,基于真实数据集案例实战. 主体课程分成三个大模块 (1)python数

python处理数据的风骚操作[pandas 之 groupby&agg]

https://segmentfault.com/a/1190000012394176 介绍 每隔一段时间我都会去学习.回顾一下python中的新函数.新操作.这对于你后面的工作是有一定好处的.本文重点介绍了pandas中groupby.Grouper和agg函数的使用.这2个函数作用类似,都是对数据集中的一类属性进行聚合操作,比如统计一个用户在每个月内的全部花销,统计某个属性的最大.最小.累和.平均等数值. 其中,agg是pandas 0.20新引入的功能 groupby && Grou

[数据分析工具] Pandas 功能介绍(二)

条件过滤 我们需要看第一季度的数据是怎样的,就需要使用条件过滤 体感的舒适适湿度是40-70,我们试着过滤出体感舒适湿度的数据 最后整合上面两种条件,在一季度体感湿度比较舒适的数据 列排序 数据按照某列进行排序 “by”参数可以使用字符串,也可以是列表,ascending 的参数也可以是单个值或者列表 ascending 默认值是 True 列中的每行上的 apply 函数 在前一篇的增加列的部分,根据风速计算人体感觉是否舒适,为了功能的演示,在这里使用 DataFrame 的 apply 方法