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

CSV数据处理全指南:从基础到实战

CSV(Comma-Separated Values,逗号分隔值) 是一种简单的文件格式,用于存储和交换表格数据(如电子表格或数据库中的记录)。其核心特点是用逗号分隔字段,以换行符分隔记录。


CSV 的定义与结构

  1. 基本格式

    • 每行表示一条记录(行)。

    • 字段(列)之间用逗号(,)分隔。

    • 文本字段可以用双引号(")包裹,以处理字段内包含逗号、换行符或引号的情况。

Name,Age,Email
"Alice, Smith",30,alice@example.com
Bob,25,bob@test.com
  1. 优点

    • 纯文本格式,通用性强,几乎支持所有工具(Excel、数据库、编程语言等)。

    • 轻量级,适合快速导入/导出数据。

    • 人类可读,易于手动编辑。

  2. 缺点

    • 无数据类型定义(所有数据均为字符串)。

    • 无标准化规范,不同工具的分隔符或转义规则可能不同。

    • 不适合复杂数据(如嵌套结构)。


CSV 的常见函数与操作

在不同的编程语言或工具中,处理 CSV 的常用函数如下:

1. Python
  • 标准库 csv

import csv
# 读取 CSV
with open('data.csv', 'r') as f:reader = csv.reader(f)for row in reader:print(row)
# 写入 CSV
with open('output.csv', 'w') as f:writer = csv.writer(f)writer.writerow(["Name", "Age"])writer.writerow(["Alice", 30])
  • Pandas 库
import pandas as pd
# 读取 CSV 到 DataFrame
df = pd.read_csv('data.csv')
# 写入 CSV
df.to_csv('output.csv', index=False)
2. JavaScript
  • 库 PapaParse

// 解析 CSV 字符串
Papa.parse(csvText, {complete: (result) => console.log(result.data)
});
3. Excel / 电子表格
  • 直接打开 CSV 文件(自动解析为表格)。

  • 导出为 CSV 时选择“另存为 CSV 格式”。

4. SQL 数据库
  • 导入:使用 LOAD DATA INFILE(MySQL)或 COPY(PostgreSQL)。

  • 导出:通过命令行工具(如 mysqldump)或导出功能。


注意事项

  1. 编码问题:确保文件编码一致(如 UTF-8),避免乱码。

  2. 分隔符冲突:若数据含逗号,需用引号包裹字段(如 "San Francisco, USA")。

  3. 转义字符:引号内的引号需转义(如 "He said, ""Hello""")。

  4. 空值处理:通常用空字段表示(如 John,,30 表示第二列无值)。

http://www.lryc.cn/news/2387239.html

相关文章:

  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
  • 实时数仓flick+clickhouse启动命令
  • 【Git】Commit Hash vs Change-Id
  • Netty学习专栏(六):深度解析Netty核心参数——从参数配置到生产级优化
  • 服务器磁盘按阵列划分为哪几类
  • 在WPF中添加动画背景
  • 【KWDB创作者计划】_KWDB分布式多模数据库智能交通应用——高并发时序处理与多模数据融合实践
  • Android 中的 ViewModel详解
  • Java集合框架与三层架构实战指南:从基础到企业级应用
  • 6个月Python学习计划 Day 2 - 条件判断、用户输入、格式化输出
  • 使用docker容器部署Elasticsearch和Kibana
  • 批量处理合并拆分pdf功能 OCR 准确率高 免费开源
  • Unity—lua基础语法
  • 目标检测 TaskAlignedAssigner 原理
  • Qt popup窗口半透明背景
  • 游戏:元梦之星游戏开发代码(谢苏)
  • TCP协议原理与Java编程实战:从连接建立到断开的完整解析
  • Linux的top命令使用
  • Spring Cloud Gateway 限流实践:基于 Redis 令牌桶算法的网关层流量治理
  • 可视化大屏实现全屏或非全屏
  • java8函数式接口(函数式接口的匿名实现类作为某些方法的入参)
  • linux自有服务
  • UniApp网页版集成海康视频播放器
  • Filter和Interceptor详解(一文了解执行阶段及其流程)
  • 鸿蒙仓颉开发语言实战教程:实现商城应用详情页
  • GitAny - 無需登入的 GitHub 最新倉庫檢索工具
  • 在飞牛nas系统上部署gitlab
  • 深入理解 Redis 哨兵模式
  • SQL进阶之旅 Day 4:子查询与临时表优化
  • [特殊字符]《Qt实战:基于QCustomPlot的装药燃面动态曲线绘制(附右键菜单/样式美化/完整源码)》