Pandas 应用
Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。
数据结构
Series 是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

1、Pandas 数据结构 - Series

Series 带标签的一维数组
pandas.Series( data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray 类型)。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认为 False。

如果没有指定索引,索引值就从 0 开始

t = pd.Series([4,5,6])
print(t)
print(type(t))  # <class 'pandas.core.series.Series'>
print(t[1])  # 5
"""
0    4
1    5
2    6
dtype: int64
<class 'pandas.core.series.Series'>
5
"""

指定索引值,修改数据类型:

t2 = pd.Series([2,4,6,8], index=list("abcd"))
print(t2)
print(t2["c"])  # 6
print(t2.astype(float))
print(t2[t2>5])
"""
a    2
b    4
c    6
d    8
dtype: int64
6
a    2.0
b    4.0
c    6.0
d    8.0
dtype: float64
c    6
d    8
dtype: int64
"""

使用 key/value 对象,类似字典来创建 Series

temp_dict = {"name": "wang1", "age": 18, "tel": 10010}t3 = pd.Series(temp_dict)
print(t3)
print(t3["age"])  # 18
print(t3[1])  # 18
print(t3[:2])
print(t3[[1,2]])
print(t3[["name","tel"]])
"""
name    wang1
age        18
tel     10010
dtype: object
18
18
name    wang1
age        18
dtype: object
age       18
tel    10010
dtype: object
name    wang1
tel     10010
dtype: object
"""

获取 Series 的值、索引

print(t3.index)  # Index(['name', 'age', 'tel'], dtype='object')
print(type(t3.index))  # <class 'pandas.core.indexes.base.Index'>print(t3.values)  # ['wang1' 18 10010]
print(type(t3.values))  # <class 'numpy.ndarray'>

2、Pandas 数据结构 - DataFrame

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)

DataFrame 构造方法如下:
pandas.DataFrame( data, index, columns, dtype, copy)
DataFrame 二维,Series 容器
参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
import pandas as pd
import numpy as np
t = pd.DataFrame(np.arange(12).reshape(3,4))
print(t)
"""0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
"""


DataFrame对象既有行索引,又有列索引
行索引,表明不同行,横向索引,叫index,0轴,axis=0
列索引,表明不同列,纵向索引,叫columns,1轴,axis=1

2.1、index、columns 使用:

t1 = pd.DataFrame(np.arange(12).reshape(3,4), index=list("abc"), columns=list("wxyz"))
print(t1)
"""w  x   y   z
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
"""

2.2、使用列表创建DataFrame,缺失的值用 NaN 代替

data = [['Google',10],['Runoob',12],['Wiki',13]]
df = pd.DataFrame(data,columns=['Site','Age'])
print(df)
"""Site  Age
0  Google   10
1  Runoob   12
2    Wiki   13
"""

2.3、使用字典创建DataFrame,缺失的值用 NaN 代替

data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
print (df)
"""Site  Age
0  Google   10
1  Runoob   12
2    Wiki   13
"""
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)
"""a   b     c
0  1   2   NaN
1  5  10  20.0
"""

2.4、DataFrame基础属性

DataFrame.shape  # 行数 列数
DataFrame.dtypes  # 列数据类型
DataFrame.ndim  # 数据维度
DataFrame.index  # 行索引
DataFrame.columns  # 列索引
DataFrame.values  # 对象值DataFrame.head(3)  # 显示头部几行,默认5行
DataFrame.tail(3)  # 显示末尾几行,默认5行
DataFrame.info()  # 相关信息概览:行数,列数,列索引,列非空值个数,列类型,内存占用
DataFrame.describe()  # 快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print(df)
"""a   b     c
0  1   2   NaN
1  5  10  20.0
"""
print(df.index)  # RangeIndex(start=0, stop=2, step=1)
print(df.columns)  # Index(['a', 'b', 'c'], dtype='object')
print(df.values)  # [[ 1.  2. nan] [ 5. 10. 20.]]
print(df.shape)  # (2, 3)
print(df.ndim)  # 数据维度 2
print(df.dtypes)  # 列数据类型
"""
a      int64
b      int64
c    float64
dtype: object
"""
print("*"*80)
print(df.info())
"""
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 3 columns):#   Column  Non-Null Count  Dtype
---  ------  --------------  -----  0   a       2 non-null      int64  1   b       2 non-null      int64  2   c       1 non-null      float64
dtypes: float64(1), int64(2)
memory usage: 176.0 bytes
None
"""
print(df.describe())
"""a          b     c
count  2.000000   2.000000   1.0
mean   3.000000   6.000000  20.0
std    2.828427   5.656854   NaN
min    1.000000   2.000000  20.0
25%    2.000000   4.000000  20.0
50%    3.000000   6.000000  20.0
75%    4.000000   8.000000  20.0
max    5.000000  10.000000  20.0
"""

2.5、DataFrame 排序

data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print(df)
"""a   b     c
0  1   2   NaN
1  5  10  20.0
"""
# ascending=True 升序
# ascending=False 降序
df = df.sort_values("c", ascending=False)
print(df)
"""a   b     c
1  5  10  20.0
0  1   2   NaN
"""

https://www.runoob.com/pandas/pandas-series.html
https://www.bilibili.com/video/BV1hx411d7jb?p=23
https://www.bilibili.com/video/BV1hx411d7jb?p=24
https://www.bilibili.com/video/BV1hx411d7jb?p=25
https://www.bilibili.com/video/BV1hx411d7jb?p=26

python3-pandas 数据结构 Series、DataFrame 基础相关推荐

  1. Pandas数据结构之DataFrame常见操作

    提取.添加.删除列 用方法链分配新列 索引 / 选择 数据对齐和运算 转置 DataFrame 应用 NumPy 函数 控制台显示 DataFrame 列属性访问和 IPython 代码补全 提取.添 ...

  2. 【DS with Python】 Pandas中Series DataFrame的结构、创建、查询、修改语法与实例

    文章目录 前言 一.Series结构与应用 1.1 Series的构造 1.2 创建Series 1.2.1 可用于创建Series的类型 1.2.2 三种设置index的方法 1.2.3 Serie ...

  3. Python数据分析——pandas数据结构(DataFrame)

    一.pandas数据结构–DataFrame DataFrame 是表格型的数据结构,每列值的数据类型可以不同,也可以相同 DataFrame 常用于二维数据. DataFrame 的属性: valu ...

  4. dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例

    pandas 是基于numpy构建的库,加上numpy,主要用于科学运算和数据处理. 也是一个让我忘记昂贵的MATLAB,并且不得不复习SQL的库.. 一般引入规定: In [105]: from p ...

  5. [pandas基础]Pandas Series和Pandas DataFrame基础操作

    目录 Series基础 创建Series 通过索引获取数据 指定Series的索引值 根据索引值读取数据 使用key/value对象(类似字典)来创建Seires DataFrame基础 使用列表创建 ...

  6. pandas数据结构:Series/DataFrame;python函数:range/arange

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  7. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  8. Pandas 中 Series 和 DataFrame 知识点

    Series Series对象的创建 # pandas 学习 import pandas as pd from pandas import Series,DataFrame import numpy ...

  9. pandas Series DataFrame 丢弃指定轴上的项(三)

    1.0 删除Series项 from pandas import Series,DataFrame import numpy as np import pandas as pd obj=Series( ...

最新文章

  1. 点击页面空白处就关闭某个层是怎么做到的
  2. ACP-PMP答题技巧
  3. Java如何定义三个圆_java – 以编程方式查找三个圆的交叉点
  4. NAS优缺点完全剖析
  5. mysql 中间点策略_网易MySQL中间件的负载均衡策略及性能优化
  6. 怎样在Android上手动备份你的短信/彩信?
  7. [Vue warn]: Cannot find element: #main
  8. JavaScript之JSON详解
  9. java 伊甸园_离伊甸园仅一步之遥
  10. 计算机图形图像处理专业学什么,计算机图形图像处理教学大纲
  11. c语言计算10以内之和,求一个C语言程序,随机产生50道10以内的加法算术题
  12. timer延迟1us_STM32 Systick定时器在实现1us延时的问题与解决
  13. 天猫四大独门利器,助力品牌引领消费趋势
  14. error: Cannot delete branch 'xxx' checked out at 'xxxx'
  15. JS逆向时碰到了恶心的死代码怎么办?手把手教你解决!
  16. MSRA被曝停招国防七子及北邮学生!
  17. Dw新建HTML网页步骤
  18. 搜索引擎排名不等于网站的优化
  19. ios如何快速转型安卓开发-专题1
  20. 5G高铁来了,多卡聚合智能融合通信设备保障春运高铁网络稳定

热门文章

  1. Java单元测试技巧之PowerMock
  2. 技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量
  3. 2021年阿里云采购季大促主会场全攻略
  4. 阿里云高级技术专家:面向5G的云网一体及云原生应用实践
  5. 当Kubernetes应用遇到阿里分批发布模式
  6. 函数计算搭建 Serverless Web 应用(一)- HTTP 触发器
  7. 开启数据科学职业生涯的8个基本技巧
  8. iOS Mach异常和signal信号
  9. 全网最详细TCP参数讲解,再也不用担心没有面试机会了......
  10. 消息称苹果斥资2亿美元收购Xnor.ai;华为2000万英镑投资,加速发展HMS手机生态系统;国产SSD将迎来爆发……...