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

Pandas系列|第二期:Pandas中的数据结构

1.Pandas中的数据结构:Series和DataFrame

Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。

Series 是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。
DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)

2.示例代码

import numpy as np
import pandas as pd

# 用numpy数组创建Series
data = pd.Series([0.25, 0.5, 0.75, 1.0])
n1 = data.values  # values是一个numpy数组
sub1data = data[1]
sub2data = data[1:3]

data2 = pd.Series([0.25, 0.5, 0.75, 1.0],
                  index=['a', 'b', 'c', 'd'])  # 类似一个广义的numpy数组,可以显式地指定index
sub1data2 = data2['b']
data3 = pd.Series([0.25, 0.5, 0.75, 1.0],
                  index=[2, 5, 3, 7])  # 索引可以不必是连续的

# 用字典创建Series
population_dict = {'California': 38332521,
                   'Texas': 26448193,
                   'New York': 19651127,
                   'Florida': 19552860,
                   'Illinois': 12882135}
population = pd.Series(population_dict)
population1 = population['California']
population2 = population['California':'Illinois']

# 直接创建Series
pd.Series([2, 4, 6])
pd.Series(5, index=[100, 200, 300])
pd.Series({2: 'a', 1: 'b', 3: 'c'})
pd.Series({2: 'a', 1: 'b', 3: 'c'}, index=[3, 2])  # 只返回指定索引的部分数据

# 用多个Series创建DataFrame
area_dict = {'California': 423967,
             'Texas': 695662,
             'New York': 141297,
             'Florida': 170312,
             'Illinois': 149995}
area = pd.Series(area_dict)
states = pd.DataFrame({'population': population,
                       'area': area})
print(states.index)  # 索引名
print(states.columns)  # 列名
print(states['area']) # 访问某一列


# 用单个Series创建DataFrame
# DataFrame是Series的一个集合,也可以由一个Series构成
states1 = pd.DataFrame(population, columns=['population'])


# 用字典创建DataFrame
data = [{'a': i, 'b': 2 * i} for i in range(3)]
dataset0 = pd.DataFrame(data)

# 创建含有NaN的DataFrame
dataset1 = pd.DataFrame([{'a': 1, 'b': 2}, {'b': 3, 'c': 4}])

# 用二维numpy数组创建DataFrame
dataset2 = pd.DataFrame(np.random.rand(3, 2),columns=['foo', 'bar'],
             index=['a', 'b', 'c'])

# 用结构化的numpy数组创建DataFrame
A = np.zeros(3, dtype=[('A', 'i8'), ('B', 'f8')])
dataset3 = pd.DataFrame(A)


# 在pandas种索引本身是一种结构,用整数构造索引
ind = pd.Index([2, 3, 5, 7, 11])
print(ind[1])
print('---------------------------------')
print(ind[::2]) # 隔2个序号取一个值
print(ind[::-1]) # 把列倒着排一遍
print(ind.size, ind.shape, ind.ndim, ind.dtype)

# 索引是一种有序的集合,可以求交集、并集、差集
indA = pd.Index([1, 3, 5, 7, 9])
indB = pd.Index([2, 3, 5, 7, 11])
print(indA & indB)  # intersection
print(indA | indB)  # union
print(indA ^ indB)  # symmetric difference


http://www.kler.cn/a/455884.html

相关文章:

  • OpenGL笔记(3)
  • Vue.js 高级组件开发:抽象与高性能架构
  • 高质量配音如何影响游戏的受欢迎度
  • 软件耦合类型及相关说明
  • StarRocks 存算分离在得物的降本增效实践
  • mysql,mariadb,postgresql创建用户和授权的命令
  • 10G_ethernet学习记录(1):10G Ethernet PCS/PMA ip的使用
  • 【深度学习基础|pip安装】pip 安装库时,能够自动下载、安装、更新和卸载 Python 包,为基于python语言构建深度学习网络提供了方便。
  • CSS实现无限滚动的列表
  • docker redis安装
  • DWD三种事实表建模方法和注意事项
  • SQL中的TRIM用法
  • Scratch教学作品 | 鲁道夫与雪人——温馨圣诞动画,享受节日魔法! ✨
  • ElementPlus 自定义封装 el-date-picker 的快捷功能
  • 【Golang 面试题】每日 3 题(三)
  • SpringBoot整合Canal+RabbitMQ监听数据变更
  • 【Unity3D】ECS入门学习(二)实例化预制体
  • k8s-node2 NotReady 节点NotReady如何解决?
  • 蓝桥杯——神奇的数组
  • 认识Linux的Bash