当前位置: 首页 > article >正文

pandas基础1

​ Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。除此之外,Pandas 拥有强大的缺失数据处理与数据透视功能,可谓是数据预处理中的必备利器。

​ Pandas 是非常著名的开源数据处理库,其基于 NumPy 开发,该工具是 Scipy 生态中为了解决数据分析任务而设计。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的函数和方法。

数据类型

Pandas 的数据类型主要有以下几种,它们分别是:Series(一维数组),DataFrame(二维数组),Panel(三维数组),Panel4D(四维数组),PanelND(更多维数组)。其中 Series 和 DataFrame 应用的最为广泛,几乎占据了使用频率 90% 以上。

我们按照维度来介绍对应的操作

在 Pandas 中,Series 是一个一维数组结构,用于存储任何类型的数据(整数、字符串、浮点数、Python对象等)。Series 的每个元素都有一个索引标签,使得它类似于一个字典。

关键特性:

  • 可变性:可以更改其元素。
  • 异构性:可以包含不同类型的数据。
  • 自动索引:如果没有指定索引,则自动创建从 0 开始的索引。

序列类型即一位数组

来看看有什么数据类型

Pandas 的 Series 对象可以包含多种不同的数据类型,例如:

  1. 整数类型:例如 pd.Series([1, 2, 3, 4])
  2. 浮点类型:例如 pd.Series([1.0, 2.5, 3.3, 4.8])
  3. 字符串类型:例如 pd.Series(['apple', 'banana', 'cherry'])
  4. 布尔类型:例如 pd.Series([True, False, True])
  5. 时间类型:例如 pd.Series(pd.date_range('20200101', periods=3))
  6. 混合类型:可以在一个 Series 中包含不同类型的数据,例如 pd.Series([1, 'apple', 3.14, True])

以下是一些常见的 Series 操作的示例代码:

import pandas as pd

# 创建 Series
data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])

# 访问数据
print(data['b'])  # 输出: 2

# 修改数据
data['b'] = 5
print(data['b'])  # 输出: 5

# 切片操作
print(data[1:3])

# 条件筛选
print(data[data > 2])

# 常用函数
print(data.mean())  # 计算平均值

这些操作展示了 Series 的基本使用,包括创建、访问、修改数据、切片以及使用简单的统计函数。

# 创建 Series
data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])

这个比较直观我们可以看到四个数字,如果直接打印data[0],就会输出位置为0的数字1,如果打印data[‘a’]也是输出数字a对应位置的数字

在 Pandas 中,Series 是一个一维数组结构,用于存储任何类型的数据(整数、字符串、浮点数、Python对象等)。Series 的每个元素都有一个索引标签,使得它类似于一个字典。

import pandas as pd
pf=pd.Series({'a':10,'b':20,'c':30},index={1,2,3})
pf

在上面提供的代码中,有一个错误。当创建一个 Series 对象时,如果**同时提供了一个字典和一个索引列表,Pandas 将使用提供的索引来查找字典中的值。如果在字典中找不到索引对应的键,将会返回 NaN(表示“不是数字”)**作为那个索引的值。在你的例子中,由于索引是 {1, 2, 3} 而字典的键是 {'a', 'b', 'c'},因此无法找到匹配的键,最终得到的 Series 将只包含 NaN 值。

正确的代码可以是这样的:

import pandas as pd
pf = pd.Series({'a': 10, 'b': 20, 'c': 30})
print(pf)

这样就会使用字典键作为索引,创建一个包含指定值的 Series 对象。如果你想自定义索引,可以这样做:

pf = pd.Series({'a': 10, 'b': 20, 'c': 30}, index=['a', 'b', 'c'])
print(pf)

这样将使用 'a', 'b', 'c' 作为索引。

DataFrame

DataFrame 是 Pandas 中最为常见、最重要且使用频率最高的数据结构。DataFrame 和平常的电子表格或 SQL 表结构相似。你可以把 DataFrame 看成是 Series 的扩展类型,它仿佛是由多个 Series 拼合而成。它和 Series 的直观区别在于,数据不但具有行索引,且具有列索引。

dataframe的基本结构

pandas.DataFrame(data=None, index=None, columns=None)
df = pd.DataFrame({'one': pd.Series([1, 2, 3]),
                   'two': pd.Series([4, 5, 6]),
                  'three':[1,2,3]},
                 )

输出结果如下:

onetwothree
0141
1252
2363

先介绍到这里


http://www.kler.cn/news/155211.html

相关文章:

  • 观察者设计模式
  • ZooKeeper 如何保证数据一致性?
  • 二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
  • CentOS配置本地源
  • Python 内置异常
  • 内存函数​(memcpy、memmove、memset、memcmp)
  • 奇葩问题:arp缓存、ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)
  • GEE:不同方向的线性检测算子
  • 【C语言学习疑难杂症】第9期:关于%*s以及%*d等的使用
  • 点云从入门到精通技术详解100篇-基于三维点云的工件曲面轮廓检测与机器人打磨轨迹规划(下)
  • Raft 算法
  • C# Onnx 阿里达摩院开源DAMO-YOLO目标检测
  • 采集工具-免费采集器下载
  • ARM架构基础简介
  • SCAU:各位数字
  • python 图书馆选座小程序源码
  • css如何设置文本添加下划线
  • 深度学习 -- 卷积神经网络
  • 2023年亚太杯APMCM数学建模大赛B题玻璃温室小气候调控
  • Android实验:绑定service实验
  • 【Java面试——JUC全局观、原子类、锁、集合类、线程池、工具类】
  • 海林猴头菇 区域公用品牌形象正式发布
  • 服务器入侵如何防护,业务被攻击如何处理,服务器安全防护方案
  • 计算机网络TCP篇①
  • 【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
  • AIOps、微服务和云平台
  • 9.ROS的TF坐标变换(三):坐标系关系查看与一个案例
  • Linux /etc/hosts文件
  • 【Spring】AOP实现公共字段填充
  • 19.C++ 中将一维数组转成多维的三种方式