Python学习之数据分析库二(Pandas入门)

目录

一、什么是Pandas

二、安装Pandas

三、Pandas基本用法

1.pandas创建Series数据类型

2.Series基本操作

3、Series运算(+ - * /)

4、特殊的where方法

5、创建DataFrame数据类型

6、DataFrame基础属性和整体情况查询

7、文件的读取与写入

8、分组和聚合操作之group_by

四、案例一(商品数据分析)

五、案例二(消费金额和小费之间的关联与性别和吸烟与否的关系)


一、什么是Pandas

  • pandas 是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。
  • Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
  • pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
  • 它是使Python成为强大而高效的数据分析环境的重要因素之一。

有关Pandas的更多介绍网站:https://pandas.pydata.org/

二、安装Pandas

豆瓣源快速安装:pip install -i https://pypi.douban.com/simple pands

 普通安装:pip install pandas

导入Pandas库,一般都会用到numpy库,所以我们需要一同导入:

import  numpy  as  np
import  pandas as  pd

三、Pandas基本用法

1.pandas创建Series数据类型

Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
利器之一:Series
   类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。
利器之二:DataFrame
    是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

常见的数据类型:
    - 一维: Series
    - 二维: DataFrame
    - 三维: Panel  ....
    - 四维: Panel4D  .....
    - N维: PanelND  ....
Series是Pandas中的一维数据结构,类似于Python中的列表和Numpy中的Ndarray,不同之处在于:Series是一维的,能存储不同类型的数据,有一组索引与元素对应。

创建Series 数据类型有三种方法:

  1. 通过列表创建Series对象
  2. 通过numpy的对象Ndarry创建Serise
  3. 通过字典创建Series对象;字典的所有key值作为索引,所有的value值作为Series值
import pandas as pd
import numpy as np
import  string

# 查看pandas版本信息
print(pd.__version__)

# ********************创建Series对象

#  1). 通过列表创建Series对象
array = ["粉条", "粉丝", "粉带"]
# 如果不指定索引, 默认从0开始;
s1 = pd.Series(data=array)
print(s1)
# 如果不指定索引, 默认从0开始;
ss1 = pd.Series(data=array, index=['A', 'B', 'C'])
print(ss1)

# 2). 通过numpy的对象Ndarray创建Series;
n = np.random.randn(5)   # 随机创建一个ndarray对象;
s2 = pd.Series(data=n)
print(s2)
# 修改元素的数据类型;
ss2 = s2.astype(np.int)
print(ss2)

# 3). 通过字典创建Series对象;
dict = {string.ascii_lowercase[i]:i for i in range(10)}
# print(dict)
s3 = pd.Series(dict)
print(s3)

运行结果:

0.23.4
0    粉条
1    粉丝
2    粉带
dtype: object
A    粉条
B    粉丝
C    粉带
dtype: object
0    0.024406
1   -1.819926
2   -0.763840
3   -0.945519
4   -0.763354
dtype: float64
0    0
1   -1
2    0
3    0
4    0
dtype: int32
a    0
b    1
c    2
d    3
e    4
f    5
g    6
h    7
i    8
j    9
dtype: int64

2.Series基本操作

Series 基本操作:
编号      属性或方法           描述
1       axes                返回行轴标签列表。
2       dtype               返回对象的数据类型(dtype)。
3       empty               如果系列为空,则返回True。
4       ndim                返回底层数据的维数,默认定义:1。
5       size                返回基础数据中的元素数。
6       values              将系列作为ndarray返回。
7       head()              返回前n行。
8       tail()              返回最后n行。

例如:

import pandas as pd
import numpy as np
import  string

array = ["粉条", "粉丝", "粉带"]
s1 = pd.Series(data=array)
print(s1)
print(s1.axes)
print(s1.dtype)
print(s1.empty)
print(s1.ndim )
print(s1.size)
print(s1.values)            #获取所有的value值(不显示索引)

#
# 1). 修改Series索引
print(s1.index)
s1.index = ['A', 'B', 'C']
print(s1)


# 2). Series纵向拼接;
array = ["粉条", "粉丝", "westos"]
# 如果不指定索引, 默认从0开始;
s2 = pd.Series(data=array)
s3 = s1.append(s2)
print(s3)
#
# 3). 删除指定索引对应的元素;
s3 = s3.drop('C')  # 删除索引为‘C’对应的值;
print(s3)


# 4). 根据指定的索引查找元素
print(s3['B'])
s3['B'] = np.nan  # None, null, pandas数据为空, 或者数据缺失, np.nan
print(s3)


# 5). 切片操作  --- 同列表
print(s3[:2])
print(s3[::-1])
print(s3[-2:])  # 显示最后两个元素

运行结果:

0    粉条
1    粉丝
2    粉带
dtype: object
[RangeIndex(start=0, stop=3, step=1)]
object
False
1
3
['粉条' '粉丝' '粉带']
RangeIndex(start=0, stop=3, step=1)
A    粉条
B    粉丝
C    粉带
dtype: object
A        粉条
B        粉丝
C        粉带
0        粉条
1        粉丝
2    westos
dtype: object
A        粉条
B        粉丝
0        粉条
1        粉丝
2    westos
dtype: object
粉丝
A        粉条
B       NaN
0        粉条
1        粉丝
2    westos
dtype: object
A     粉条
B    NaN
dtype: object
2    westos
1        粉丝
0        粉条
B       NaN
A        粉条
dtype: object
1        粉丝
2    westos
dtype: object

3、Series运算(+ - * /)

import pandas as pd
import numpy as np

s1 = pd.Series(np.arange(5), index=['a', 'b', 'c', 'd', 'e'])
s2 = pd.Series(np.arange(2,8), index=['c', 'd', 'e', 'f', 'g', 'h'])

print(s1)
print(s2)

# 按照对应的索引来进行运算,如果索引不同,则填充为Nan
# 加法, 缺失值 + 真实值 = 缺失值
# print(s1+s2)
print(s1.add(s2))

# 减法
# print(s1 - s2)
print(s1.sub(s2))

# 乘法
# print(s1 * s2)
print(s1.mul(s2))

# 除法
# print(s1 / s2)
print(s1.div(s2))

# 求中位数
print(s1)
print(s1.median())

# 求和
print(s1.sum())

# max
print(s1.max())

# min
print(s1.min())

运行结果:

a    0
b    1
c    2
d    3
e    4
dtype: int64
c    2
d    3
e    4
f    5
g    6
h    7
dtype: int64
a    NaN
b    NaN
c    4.0
d    6.0
e    8.0
f    NaN
g    NaN
h    NaN
dtype: float64
a    NaN
b    NaN
c    0.0
d    0.0
e    0.0
f    NaN
g    NaN
h    NaN
dtype: float64
a     NaN
b     NaN
c     4.0
d     9.0
e    16.0
f     NaN
g     NaN
h     NaN
dtype: float64
a    NaN
b    NaN
c    1.0
d    1.0
e    1.0
f    NaN
g    NaN
h    NaN
dtype: float64
a    0
b    1
c    2
d    3
e    4
dtype: int64
2.0
10
4
0

4、特殊的where方法

where方法:类似于三元运算符,满足条件不做改变,否则赋值为其他值


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据分析是指使用Python编程语言进行处理、数据可视化和数据建模的过程。下面是Python数据分析入门步骤: 1. 安装Python和相关库:首先,你需要安装Python解释器。你可以从Python官方网站下载并安装最新版本的Python。在安装Python之后,你需要安装一些常用的数据分析库,如NumPy、Pandas和Matplotlib。你可以使用pip命令来安装这些库。 2. 学习Python基础知识:在开始进行数据分析之前,你需要掌握一些基本的Python编程知识,如变量、数据类型、条件语句、循环等。你可以通过阅读Python的官方文档或参考一些在线教程来学习Python基础知识。 3. 学习NumPy库:NumPy是Python中用于科学计算的一个重要库。它提供了多维数组对象和一些用于操作数组的函数。学习NumPy可以帮助你更高效地处理和操作大量的数据。你可以通过阅读NumPy的官方文档或参考一些在线教程来学习NumPy。 4. 学习Pandas库:PandasPython中用于数据分析的一个强大库。它提供了高效的数据结构和数据分析工具,如DataFrame和Series学习Pandas可以帮助你更方便地进行数据清洗、数据处理和数据分析。你可以通过阅读Pandas的官方文档或参考一些在线教程来学习Pandas。 5. 学习Matplotlib库:Matplotlib是Python中用于数据可视化的一个常用库。它提供了各种绘图函数和工具,可以帮助你将数据可视化为图表、图形和图像。学习Matplotlib可以帮助你更好地理解和展示数据。你可以通过阅读Matplotlib的官方文档或参考一些在线教程来学习Matplotlib。 6. 实践项目:最后,你可以通过实践一些数据分析项目来巩固所学的知识。你可以从一些开放的数据集中选择一个感兴趣的主题,然后使用Python进行数据清洗、数据处理和数据可视化。这样可以帮助你更深入地理解和应用Python数据分析的技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值