3. pandas笔记之:创建

news2025/4/25 10:24:54

以下是 Pandas 主要数据结构的创建方式整理,涵盖 Series 和 DataFrame 的常见创建方法:


一、Series 创建方式

  1. 从列表/数组创建
import pandas as pd
import numpy as np

# 基础列表
s1 = pd.Series([1, 3, 5, np.nan, 6])

# 指定索引
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'c'])

# 从 NumPy 数组
arr = np.array([2, 4, 6])
s3 = pd.Series(arr)
  1. 从字典创建
data = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(data)  # 字典键自动作为索引
  1. 标量值创建
s = pd.Series(5, index=[0, 1, 2, 3])  # 所有值为5

二、DataFrame 创建方式

  1. 从字典创建
# 列式字典
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 28],
    'Score': [92.5, 85.0, 88.5]
}
df1 = pd.DataFrame(data)

# 指定索引
df2 = pd.DataFrame(data, index=['a', 'b', 'c'])
  1. 从列表的列表创建
data = [
    ['Alice', 25, 92.5],
    ['Bob', 30, 85.0],
    ['Charlie', 28, 88.5]
]
df = pd.DataFrame(data, columns=['Name', 'Age', 'Score'])
  1. 从嵌套字典创建
data = {
    '2020': {'A': 100, 'B': 200},
    '2021': {'A': 110, 'C': 210}
}
df = pd.DataFrame(data)  # 外层字典键为列名,内层键为索引
  1. 从 NumPy 数组创建
arr = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
df = pd.DataFrame(arr, columns=['X', 'Y', 'Z'])
  1. 从结构化数组创建
dtype = [('Name', 'U10'), ('Age', 'i4'), ('Score', 'f4')]
data = np.array([
    ('Alice', 25, 92.5),
    ('Bob', 30, 85.0)
], dtype=dtype)
df = pd.DataFrame(data)
  1. 从文件/外部数据源创建
# 从 CSV
df_csv = pd.read_csv('data.csv')

# 从 Excel
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 从 SQL 数据库
import sqlite3
conn = sqlite3.connect('database.db')
df_sql = pd.read_sql('SELECT * FROM table', conn)

三、特殊创建方式

  1. 时间序列索引
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A','B','C','D'])
  1. 随机数据生成
df = pd.DataFrame(np.random.rand(3,4))  # 均匀分布
df = pd.DataFrame(np.random.randn(3,4)) # 正态分布
  1. 从其他数据结构转换
# 从 Series 字典
s_dict = {
    'A': pd.Series([1, 2, 3]),
    'B': pd.Series([4, 5, 6, 7])
}
df = pd.DataFrame(s_dict)

四、高级创建技巧

  1. 指定数据类型
df = pd.DataFrame(
    data = {'A': [1, 2], 'B': ['X', 'Y']},
    dtype = {'A': 'float32', 'B': 'category'}
)
  1. 混合类型创建
df = pd.DataFrame({
    'IntCol': [1, 2, 3],
    'FloatCol': [1.1, 2.2, 3.3],
    'StrCol': ['A', 'B', 'C'],
    'DateCol': pd.date_range('20200101', periods=3)
})
  1. 空 DataFrame 创建
empty_df = pd.DataFrame(columns=['A', 'B', 'C'])

五、创建方式对比

方式适用场景优点注意事项
字典创建列式数据组织直观易读各列长度必须一致
列表的列表创建行式数据输入适合小规模数据需配合columns参数
NumPy数组创建数值型数据处理高性能需手动添加列名
文件读取大数据集加载支持多种格式注意编码和内存管理
时间序列创建金融/时序数据分析内置时间处理功能索引需排序
空DataFrame创建动态构建数据结构灵活填充数据需后续维护列结构一致性

六、最佳实践建议

  1. 优先使用字典创建:当数据以列形式组织时最直观
  2. 大数据使用文件读取:避免内存溢出
  3. 明确指定数据类型:防止自动类型推断错误
  4. 索引管理:合理设置索引提升查询性能
  5. 验证数据完整性:检查NaN和异常值

掌握这些创建方式后,可以灵活应对各种数据初始化场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust 学习笔记:安装 Rust

Rust 学习笔记:安装 Rust Rust 学习笔记:安装 Rust在 Windows 上安装 Rust命令行创建 Rust 项目在 Mac/Linux 上安装 Rust一些命令升级卸载cargo -hrustc -h 安装 RustRoverrust-analyzer Rust 学习笔记:安装 Rust 在 Windows 上安装 Rust …

编译 C++ 报错“找不到 g++ 编译器”的终极解决方案(含 Windows/Linux/macOS)

前言 在使用终端编译 C 程序时,报错: 或类似提示,意味着你的系统尚未正确安装或配置 g 编译器。本篇将从零手把手教你在 Windows / Linux / macOS 下安装并配置 g,适用于新手或 C 入门阶段的你。 什么是 g? g 是 GN…

html单页业务介绍源码

源码介绍 html单页业务介绍源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码

单体OJ项目

单体项目版本、微服务版还需我再钻研钻研。 项目介绍 在系统前台,管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。 在系统后端,能够根据管理员设定的题目测试用例在代码沙箱 中对代码进行编译、运行、判断输出是否正确。 其…

豆包桌面版 1.47.4 可做浏览器,免安装绿色版

自己动手升级更新办法: 下载新版本后安装,把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件,拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件,就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…

【MySQL】索引失效问题详解

目录 1. 最左前缀原则 2. 条件左边有函数或运算 3. 隐式类型转换 4. LIKE 模糊查询以 % 开头 5、MySQL 优化器选择全表扫描 ⭐对 in 关键字特别说明⭐ (1)列表太大时,走全表扫描了 (2)隐式类型转换 &#xff…

优选算法第十讲:字符串

优选算法第十讲:字符串 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 2.最长回文子串 3.二进制求和 4.字符串相乘

【扣子Coze 智能体案例四】五行八卦占卜智能体

目录 一、意图识别 二、时间格式转换 三、八字转换 四、八字提取 五、八字提取2 六、数据汇总 七、统计五行占比 八、雷达图生成 九、表格生成 十、AI占卜 十一、结束节点 一、意图识别 用户输入的信息包含各种时间格式的年月日时 用户输入的信息包含天干地支八字…

5.学习笔记-SpringMVC(P61-P70)

SpringMVC-SSM整合-接口测试 (1)业务层接口使用junit接口做测试 (2)表现层用postman做接口测试 (3)事务处理— 1)在SpringConfig.java,开启注解,是事务驱动 2)配置事务管理器(因为事务管理器是要配置数据源对象&…

【专题刷题】二分查找(一):深度解刨二分思想和二分模板

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

硬核解析!电动汽车能耗预测与续驶里程的关键技术研究

引言 随着电动汽车的普及,续航里程和能耗表现成为用户关注的核心痛点。然而,表显续航与实际续航的差异、低温环境下的电量衰减等问题始终困扰着消费者。本文基于《电动汽车能耗预测与续驶里程研究》的实验成果,深入剖析电动汽车能耗预测的核心模型、多环境测试方法及续航里…

【OceanBase相关】01-OceanBase数据库部署实践

文章目录 一、前言1、介绍说明2、部署方案二、部署说明1、环境准备2、软件安装2.1、安装OAT2.2、安装OCP3、软件部署三、集群管理1、MySQL租户管理四、Q&A1、OBServer 服务器重启后 observer 进程未能自动启动1.1、问题说明1.2、解决措施2、ERROR 1235 (0A000) at line 1: …

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类:QMutex 和 QMutexLocker。 🧱 一、什么是 QMutex? QMutex 是 Qt 中的互斥锁(mutex)类,用于防止多个…

PCB 过孔铜厚的深入指南

***前言:在上一期的文章中介绍了PCB制造的工艺流程,但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么,为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…

Spring Security认证流程

认证是Spring Security的核心功能之一,Spring Security所提供的认证可以更好地保护系统的隐私数据与资源,只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置,开发者也可以根据自己实际的环境进行自定义身…

TXPOLARITY/RXPOLARITY设置

TXPOLARITY/RXPOLARITY:该端口用来反向输出数据的极性。 0:表示不反向。TXP是正,TXN是负; 1:标识反向。TXP是负,TXN是正; 如下图所示:

2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)

今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题,可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…

优考试V4.20机构版【可注册】

优考试V4.20机构版,可通过注册机完美激活。 优考试机构版‌是一个功能强大的在线考试系统,适用于各种 考试场景,包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点: ‌多层级管理‌:优考试机…

携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放

在4月23日“世界读书日”之际,阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题,借助阿里妈妈的AIGC能力,以AI链接古今,打开阅读典籍新方式,引起不少人强烈兴趣。据悉&…

MMsegmentation第一弹-(认识与安装)

前言 在刚接触MMsegmentation的时候,我是怎么看都看不明白,那个过程实在是太痛苦了,所以我当时就想着一定要把这个写成文章,希望后来者能很轻松的就上手。该系列文章不涉及框架的底层原理,仅以一个使用者的身份带领读…