csv、pandas、numpy写文件的区别

写入文件:

import csv
# 写入数据到 CSV 文件
with open('data_csv.csv', 'w', newline='') as csvfile:writer = csv.writer(csvfile)writer.writerow([1, 2, 3, 4])
1,2,3,4

 

import pandas as pd
# 写入数据到 Pandas DataFrame
data_pd = pd.DataFrame({'col': [1, 2, 3, 4]})
data_pd.to_csv('data_pandas.csv', index=False)
col
1
2
3
4
  • 'col':是指定的列名,用于 DataFrame 中标识这一列数据的名称。
  • [1, 2, 3, 4]:是包含在 'col' 这一列中的数据。这个列表中的每个元素将会成为 'col' 列中的一个单元格的值。

接着,to_csv() 方法用于将这个 DataFrame 对象写入 CSV 文件。在这个例子中,index=False 是一个参数,用于告诉 Pandas 不要将 DataFrame 的索引写入到文件中。

import numpy as np
# 写入数据到 NumPy Array
data_np = np.array([1, 2, 3, 4])
np.savetxt('data_numpy.csv', data_np, fmt='%d', delimiter=',')
1
2
3
4
  • fmt='%d':指定了数据的格式。在这里,'%d' 表示将数据保存为整数类型。你可以根据需要指定不同的格式,比如 '%f' 表示保存为浮点数类型,'%s' 表示保存为字符串类型等。
  • delimiter=',':指定了数据的分隔符。在这里,',' 表示以逗号作为数据的分隔符。

读取文件: 

输入: 

# 读取 CSV 文件并检查数据类型
with open('data_csv.csv', 'r') as csvfile:reader = csv.reader(csvfile)data_csv = next(reader)
print(f"Data from CSV file: {data_csv}, Data type: {type(data_csv[0])}")# 读取 Pandas DataFrame 文件并检查数据类型
data_pandas = pd.read_csv('data_pandas.csv')['col']
# print(data_pandas)
print(f"Data from Pandas DataFrame: {data_pandas.tolist()}, Data type: {type(data_pandas[0])}")# 读取 NumPy Array 文件并检查数据类型
data_numpy = np.loadtxt('data_numpy.csv', dtype=np.int, delimiter=',')
print(f"Data from NumPy Array: {data_numpy}, Data type: {type(data_numpy[0])}")

 输出:

Data from CSV file: ['1', '2', '3', '4'], Data type: <class 'str'>
Data from Pandas DataFrame: [1, 2, 3, 4], Data type: <class 'numpy.int64'>
Data from NumPy Array: [1 2 3 4], Data type: <class 'numpy.int32'>

总结

csv.writer() 方法在写入 CSV 文件时会将所有的数据类型都视作字符串来处理。它不会自动识别数据的类型并区分是否为数字、字符串等,而是将所有的数据转换为字符串后再写入文件。

这意味着,无论是整数、浮点数、字符串还是其他类型的数据,在使用 csv.writer() 写入文件时,都会被转换成字符串形式,并以字符串的形式保存到 CSV 文件中。

Pandas 在写入文件时也会尝试保持数据的类型一致性。当你使用 to_csv() 方法将 DataFrame 写入文件时,Pandas 会尝试根据数据的类型来保存数据。 

Numpy也无法做到Pandas一样自动识别,需要指定数据类型

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

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

相关文章

信息学奥赛一本通1331:【例1-2】后缀表达式的值

1331&#xff1a;【例1-2】后缀表达式的值 时间限制: 10 ms 内存限制: 65536 KB 提交数: 54713 通过数: 13547 【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xf…

Flutter开发警告Constructors in ‘@immutable‘ classes should be declared as ‘const‘

文章目录 警告信息报错代码警告原因修改后的代码 警告信息 Flutter开发遇到如下警告 Constructors in ‘immutable’ classes should be declared as ‘const’. 报错代码 class TaskWidget extends StatefulWidget {final String title;final bool isChecked;final int ord…

Java中static、final、static final的区别

文章目录 finalstaticstatic final final final可以修饰&#xff1a;属性&#xff0c;方法&#xff0c;类&#xff0c;局部变量&#xff08;方法中的变量&#xff09; final修饰的属性的初始化可以在编译期&#xff0c;也可以在运行期&#xff0c;初始化后不能被改变。 final修…

案例-某验四代滑块反爬逆向研究二

系列文章目录 第一部分 案例-某验四代滑块反爬逆向研究一 第二部分 案例-某验四代滑块反爬逆向研究二 文章目录 系列文章目录前言一、js文件加载先后顺序二、每次刷新都会初始化 device_id, 所以追栈可以知道它从哪执行的三、删除node中的检测点&#xff08;vm忽视&#xff09…

Cesium-terrain-builder编译入坑详解

本以为编译cesium-terrian-tools编译应该没那么难&#xff0c;不想问题重重&#xff0c;不想后人重蹈覆辙&#xff0c;也记录下点点滴滴。 目前网上存在的cesium代码版本主要有两个分支&#xff1a; 原始网站【不能生成layer文件&#xff0c;且经久不更新&#xff0c;使用gdal…

[PyTorch][chapter 64][强化学习-DQN]

前言&#xff1a; DQN 就是结合了深度学习和强化学习的一种算法&#xff0c;最初是 DeepMind 在 NIPS 2013年提出&#xff0c;它的核心利润包括马尔科夫决策链以及贝尔曼公式。 Q-learning的核心在于Q表格&#xff0c;通过建立Q表格来为行动提供指引&#xff0c;但这适用于状态…

python web项目导包规范

python web项目导包规范 python 内置的模块通过第三方库安装的模块框架自身提供的模块用户自己定义的模块 如&#xff1a; from __future__ import absolute_import, unicode_literalsfrom debug_toolbar.panels import Panelfrom django.utils.translation import ugettext_…

YOLOv5改进 | 添加SE注意力机制 + 更换NMS之EIoU-NMS

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。为提高算法模型在不同环境下的目标识别准确率&#xff0c;提出一种基于改进 YOLOv5 深度学习的识别方法&#xff08;SE-NMS-YOLOv5&#xff09;&#xff0c;该方法融合SE&#xff08;Squeeze-and-Excitation&#xff09;注…

邮件与协议

TCP/IP 邮件 电子邮件是 TCP/IP 最重要的应用之一。 您不会用到… 当您写邮件时&#xff0c;您不会用到 TCP/IP。 当您写邮件时&#xff0c;您用到的是电子邮件程序&#xff0c;例如莲花软件的 Notes&#xff0c;微软公司出品的 Outlook&#xff0c;或者 Netscape Communic…

算法必刷系列之数字与数学

文章目录 数字与数学符号统计阶乘0的个数整数反转字符串转数字判断回文数字十进制转七进制进制转换数组实现整数加法字符串加法二进制求和求2的幂求3的幂求4的幂最大公约数最小公倍数判断质数质数计数判断丑数丑数计数 数字与数学 数字与数学的问题基础且庞大&#xff0c;算法…

c 语言线程的使用

在 C 语言中&#xff0c;可以使用 POSIX 线程&#xff08;pthread&#xff09;库来创建和管理线程。下面是一个简单的示例程序&#xff0c;演示如何在 C 语言中使用线程&#xff1a; #include <stdio.h> #include <stdlib.h> #include <pthread.h> voi…

【pytest】Hooks函数之统计测试结果(pytest_terminal_summary)

前言 用例执行完成后&#xff0c;我们希望能获取到执行的结果&#xff0c;这样方便我们快速统计用例的执行情况。 也可以把获取到的结果当成总结报告&#xff0c;发邮件的时候可以先统计测试结果&#xff0c;再加上html的报告。 pytest_terminal_summary 关于TerminalReporter…

Python pandas数据分析

Python pandas数据分析&#xff1a; 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&#xff0c;尤其…

枚举 B. Lorry

Problem - B - Codeforces 题目大意&#xff1a;给物品数量 n n n&#xff0c;体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0≤v≤1e9)​&#xff0c;第一行读入 n , v n, v n,v&#xff0c;之后 n n n行&#xff0c;读入 n n n个物品&#xff0c;之后每行依次是体…

易错知识点(数学一)

一、反常积分判敛 1、构造使其极限等于一个大于0的常数 1&#xff09;前者通过&#xff1a;化等价无穷小 or 泰勒展开 2&#xff09;若存在p>1使得等式成立&#xff0c;则收敛 考察形式&#xff1a;1、已知收敛&#xff0c;求f(x)中的幂次取值范围 主要思想&#xff1a;比较…

⑧【HyperLoglog】Redis数据类型:HyperLoglog [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Redis HyperLoglog ⑧Redis HyperLoglog基本操…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(七)

分页查询、删除和修改菜品 1. 菜品分页查询1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 设计DTO类1.2.2 设计VO类1.2.3 Controller层1.2.4 Service层接口1.2.5 Service层实现类1.2.6 Mapper层 1.3 功能测试1.3.2 前后端联调测试 2. 删除菜品2.1 需求分析…

使用 HTML、CSS 和 JavaScript 创建图像滑块

使用 HTML、CSS 和 JavaScript 创建轮播图 在本文中&#xff0c;我们将讨论如何使用 HTML、CSS 和 JavaScript 构建轮播图。我们将演示两种不同的创建滑块的方法&#xff0c;一种是基于opacity的滑块&#xff0c;另一种是基于transform的。 创建 HTML 我们首先从 HTML 代码开…

Linux系统的研究

摘要&#xff1a; Linux是一个开源的Unix-like操作系统&#xff0c;由林纳斯托瓦兹在1991年首次发布。由于其开放性和灵活性&#xff0c;Linux已成为许多企业和个人用户的重要选择。本文将探讨Linux系统的历史、特点、应用领域以及优缺点。 一、引言 Linux系统的开发始于1980年…