数据分析工具——Pandas

  • 认识Pandas
    • Dataframe 结构
      • DataFrame 构造方法
      • dtype参数
    • Series 结构
      • Series 构造方法
  • DataFrame和Series属性

认识Pandas

Pandas 是 Python 语言的一个扩展程序库,用于数据挖掘数据分析,同时也提供数据清洗功能。

pandas(panel data & data analysis),是基于 numpy(提供高性能的矩阵运算)专门用于数据分析的工具,是一个强大的分析结构化数据(表格数据)的工具集;

Pandas所有的操作都基于两种结构: DataFrame结构 和 Series结构

Dataframe 结构

DataFrame 是 Pandas 中的一个 表格型 的数据结构,是一个二维的数组结构,类似二维数组。包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)。

表格有三部分组成,表头(列索引)、行名称(行索引)、数据元素部分。

DataFrame 构造方法

pandas.DataFrame( data, index, columns, dtype, copy)

  • data:数据(array-like 类型:可以是ndarray、series, map, lists, dict 等类型)。
  • index:行索引,如果不指定行索引—默认给一个0、1、2、3、… 这样的序号行索引。
  • columns:列索引 ,如果不指定列索引—默认给一个0、1、2、3、… 这样的序号列索引。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
方式 1:使用列表 逐个传入行索引、列索引和 数据元素
df = pd.DataFrame(# 使用 列表嵌套 构造数据data=[['zs', 19, 1],['ls', 20, 1],['ww', 19, 2]],index=['stu0', 'stu1', 'stu2'],   # 行索引columns=['name', 'age', 'group']  # 列索引# 如果不指定行索引---默认给一个0、1、2、3、... 这样的序号行索引# 如果不指定列索引---默认给一个0、1、2、3、... 这样的序号列索引
)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:name  age  group
stu0   zs   19      1
stu1   ls   20      1
stu2   ww   19      2
df_type:<class 'pandas.core.frame.DataFrame'>
"""方式 2:借助字典
df = pd.DataFrame(# 字典的键 (Key) 对应 列索引# 字典的值(Value)对应 数据元素data={'name': ['zs', 'ls', 'ww'],'age': [18, 19, 29],'group': [1, 1, 2]},index=['stu0', 'stu1', 'stu2'],  # 行索引
)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:name  age  group
stu0   zs   18      1
stu1   ls   19      1
stu2   ww   29      2
df:<class 'pandas.core.frame.DataFrame'>"""方式 3:由 ndarray 转化为 dataframe结构
import numpy
values = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print('values:\n', values)
print('values_type:', type(values))"""
values:[[1 2 3 4][5 6 7 8]]
values_type:<class 'numpy.ndarray'>"""
df = pd.DataFrame(data=values,  # 数据columns=['一','二','三','四'],  # 列索引
)
print('df:\n', df)
print('df_type:\n', type(df))
"""
df:一  二  三  四
0  1  2  3  4
1  5  6  7  8
df_type:<class 'pandas.core.frame.DataFrame'>
"""

注:关于参数元素缺失

df = pd.DataFrame(data=[['zs', 19, 1],['ls', 20, 1],['ww', 19]       # data数据元素缺失会自动用NaN补齐],index=['stu0', 'stu1', 'stu2'],       # index与data行数量不对应会报错columns=['name', 'age', 'group']    # columns与data列数量不对应会报错
)
print('df:\n', df)
"""
df:name  age  group
stu0   zs   19    1.0
stu1   ls   20    1.0
stu2   ww   19    NaN
"""

dtype参数

data=[['zs', 19, 1],['ls', 20, 1],['ww', 19, 2]
],
df = pd.DataFrame(data=datacolumns=['name', 'age', 'group'],
)
print('dtypes:\n', df.dtypes)
'''
dtypes:name     object
age       int64
group     int64
dtype: object
'''df = pd.DataFrame(data=datacolumns=['name', 'age', 'group'],dtype="int32"
)
print('dtypes:\n', df.dtypes)
'''
df:name     object
age       int32
group     int32
dtype: object
'''df = pd.DataFrame(data=datacolumns=['name', 'age', 'group'],dtype=numpy.
)
print('dtypes:\n', df.dtypes)
'''
df:name     object
age       int32
group     int32
dtype: object
'''

Series 结构

Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。Series 由索引(index)和 组成

DataFrame结构就是 由多个Series结构组成的:


df = pd.DataFrame(data=[['zs', 19, 1],['ls', 20, 1],['ww', 19, 2]],index=['stu0', 'stu1', 'stu2'],columns=['name', 'age', 'group'],
)
print('name:\n', df["name"])
print("*"*20)
print('name_type:\n', type(df["name"]))
'''
name:stu0    zs
stu1    ls
stu2    ww
Name: name, dtype: object
********************
name_type:<class 'pandas.core.series.Series'>
'''

Series 构造方法

pandas.Series( data, index, dtype, name, copy)

Serise的参数与Dataframe的参数相似:

  • data:一组数据(array-like 类型)。
  • index:数据索引标签,不指定默认从 0 开始。可指定array-like 类型需和data长度相同。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称(str 类型),相当于Dataframe结构指定多列名称的Columns 变为单列的name
  • copy:拷贝数据,默认为 False。
df= pd.Series([1, 2, 3])
print("df:\n", df)
'''
df:
0    1
1    2
2    3
dtype: int64
'''se = pd.Series(data={'zs': 17, 'ls': '18', 'ww': 18},# 可以用字典指定索引和值index=['zs', 'ls', 'ww', 'jj'], # 指定key为行索引,如果没有对应的value值,那么会用NaN补齐# 如果index和data字典的键不同,则使用index指定的索引
)
print('se:\n',se)
print('se_type:\n',type(se))
'''
se:zs     17
ls     18
ww     18
jj    NaN
dtype: object
se_type:<class 'pandas.core.series.Series'>
'''

DataFrame和Series属性

import pandas as pd# 创建DataFrame结构
df = pd.DataFrame(data=[['zs', 19, 1],['ls', 20, 1],['ww', 19, 2]],index=['stu0', 'stu1', 'stu2'],columns=['name', 'age', 'group']
)
print('df:\n', df)
print('df_type:\n', type(df))   #  <class 'pandas.core.frame.DataFrame'>print('ndim:', df.ndim)     # DataFrame结构(int):2 --->二维的结构
print('shape:', df.shape)   # DataFrame的行列数(tuple): (3,3)
print('size:', df.size)     # DataFrame的数据数量<class 'numpy.int32'>:9# print('dtype:', df.dtype)  # 'DataFrame' object has no attribute 'dtype'
print('dtypes:\n', df.dtypes)  # 返回每一列的数据类型-(组成了一个Series)----不同的列数据类型可以不同!  ---注意:DataFrame可以存储不同类型的数据print('index:', df.index)      # 获取的是DataFrame的行索引
print('columns:', df.columns)  # 获取的是Dataframe的列索引
print('values:\n', df.values)  # 数据
print('values_type:\n', type(df.values))  # <class 'numpy.ndarray'>print("-"*80)
# 获取 Series -----Series结构---一维的数据 ------>行维度
se = df['name']
print('se:\n', se)
print('se:\n', type(se))  # <class 'pandas.core.series.Series'>print('ndim:', se.ndim)     # 1
print('shape:', se.shape)   # (3,)
print('size:', se.size)     # 3
print('name:', se.name)     # name
# print('itemsize:', se.itemsize)  # 每个数据所占的字节,当前版本可能还有,但是未来要被删除!print('dtype:', se.dtype)    # object
print('dtypes:', se.dtypes)  # object, Series各个列内部的数据类型都是一样的,所以具有dtypeprint('index:',se.index)    # 行索引
print('values:',se.values)  # 数据

【数据分析】认识Pandas:DataFrame和Series结构、属性相关推荐

  1. pandas学习之Series结构

    #!/usr/bin/env python # -*- coding:utf-8 -*- """ 系列(值的集合) DataFrame数据包(系列对象的集合) panel ...

  2. Pandas DataFrame索引和列属性

    Pandas DataFrame index and columns attributes allow us to get the rows and columns label values. Pan ...

  3. python数据分析之pandas里的Series

    1 Series 线性的数据结构,series是一个一维数组 Pandas会默认用0到-1来作为series的index,但也可以自己指定index(可以把index理解为dict里面的key) 1. ...

  4. pandas dataframe与series

    https://blog.csdn.net/KevinZ5111/article/details/81006852

  5. Pandas-数据结构-Series(一):创建Series【①由字典创建;②由一维数组创建;③由标量创建】【Series的属性:index、values、name】

    Pandas中一共有三种数据结构,分别为:Series.DataFrame和MultiIndex(老版本中叫Panel ).其中: Series是一维数据结构: DataFrame是二维的表格型数据结 ...

  6. 【python与数据分析】Pandas统计分析基础

    目录 前言 一.pandas常用数据类型 综述 1.一维数组(Series)与常用操作 (1) 通过列表创建Series (2)创建Series时指定索引 (3)Series位置和标签的使用 (4)通 ...

  7. python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并

    目录 1 pandas介绍 1.1 Pandas介绍 1.2 为什么使用Pandas 1.3 案例:在numpy当中创建的股票涨跌幅数据形式 1.4 DataFrame 1.4.1 DataFrame ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  9. pandas教程:series和dataframe

    起步 pandas是一种Python数据分析的利器,是一个开源的数据分析包,最初是应用于金融数据分析工具而开发出来的,因此pandas为时间序列分析提供了很好的支持.pandas是PyData项目的一 ...

最新文章

  1. 让PyTorch更轻便,这款深度学习框架你值得拥有!在GitHub上斩获6.6k星
  2. ES6新增语法与内置对象扩展
  3. 《jQuery与JavaScript入门经典》——2.6 小结
  4. yolov5剪枝开源分享
  5. ​多任务学习漫谈:行梯度之事
  6. oracle财务软件报表,甲骨文推出Oracle 财务管理分析软件
  7. 6.大数据架构详解:从数据获取到深度学习 --- 交互式分析
  8. C# 3.0语言新特性(语言规范):4 对象和集合初始化器
  9. linux patch 命令小结
  10. 远程办公软件华为云WeLink视频会议指南(下篇:记录会议纪要)
  11. Android推送服务——百度云推送
  12. 制造业信息化的伴侣---Windows 2016超融合
  13. odoo13 学习 Actions 动作的定义
  14. 《Miss Talk》第07期:对话拓课云联合创始人兼CTO 王晓伟
  15. App测试中IOS和安卓测试的区别
  16. 如何用AARRR模型拆解社群运营,实现用户的裂变增长
  17. 深度学习笔记(四) cost function来源和证明
  18. 运动都需要什么装备?运动锻炼必备物品推荐
  19. Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)
  20. matlab ncut谱聚类,NCUT 归一化分割、谱聚类之代码调试问题

热门文章

  1. word中自动生成递增数字
  2. Java 面向对象 1 《 new 一个女朋友》
  3. Java基础学习笔记4
  4. hibernate入门项目(一)
  5. 阿里云建立Web网站基本步骤
  6. 数据可视化——R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合)
  7. Ai 2015 在 win10打开的时候显示 错误:16 解决办法
  8. python3 Requests+Sqlite+Pyquery断点下载小说爬虫
  9. 妙赞大讲糖:糖尿病患者的手术风险有多大
  10. 微信小程序简单实现获取用户授权、用户头像并保存到本地