read_csv 与 to_csv方法

2023-11-18

1.read_csv方法

1.1 返回数据类型

DataFrame:二维标记数据结构

列可以是不同的数据类型,是最常用的pandas对象,如同Series对象一样接受多种输入:lists/dicts/Series/DataFrame。

Series:一维标记数组

可以存储任意数据类型:int/string/float/Python对象,创建Series方法例子:

s = Series(data, index = index)
# data可以是Python字典/ndarray/标量值

1.2 调用方式

read_csv
(*filepath_or_buffer*, *sep='*, *'*, *delimiter=None*, *header='infer'*, *names=None*, *index_col=None*,*usecols=None*, *squeeze=False*, *prefix=None*, *mangle_dupe_cols=True*, *dtype=None*, *engine=None*,*converters=None*, *true_values=None*, *false_values=None*, *skipinitialspace=False*, *skiprows=None*, *nrows=None*,*na_values=None*, *keep_default_na=True*, *na_filter=True*, *verbose=False*, *skip_blank_lines=True*,*parse_dates=False*, *infer_datetime_format=False*, *keep_date_col=False*, *date_parser=None*, *dayfirst=False*,*iterator=False*, *chunksize=None*, *compression='infer'*, *thousands=None*, *decimal='.'*, *lineterminator=None*,*quotechar='"'*, *quoting=0*, *escapechar=None*, *comment=None*, *encoding=None*, *dialect=None*, *tupleize_cols=False*,*error_bad_lines=True*, *warn_bad_lines=True*, *skipfooter=0*, *skip_footer=0*, *doublequote=True*,*delim_whitespace=False*, *as_recarray=False*, *compact_ints=False*, *use_unsigned=False*, *low_memory=True*,*buffer_lines=None*, *memory_map=False*, *float_precision=None*)

filepath_or_buffer :

字符串,或者任何对象的read()方法。这个字符串可以是URL,有效的URL方案包括http、ftp、s3和文件。可以直接写入"文件名.csv"

header :

将行号用作列名,且是数据的开头。
注意当skip_blank_lines=True时,这个参数忽略注释行和空行。所以header=0表示第一行是数据而不是文件的第一行。
例子:

import pandas as pd
obj=pd.read_csv('test.csv')
print(obj)
print(type(obj))
print(obj.dtypes)
 Unnamed: 0  c1  c2  c3
0          a   0   5  10
1          b   1   6  11
2          c   2   7  12
3          d   3   8  13
4          e   4   9  14
<class 'pandas.core.frame.DataFrame'>
Unnamed: 0    object
c1             int64
c2             int64
c3             int64
dtype: object

上述代码中test.csv中的数据为:
因为csv中的数据都是用逗号隔开的。

,c1,c2,c3
a,0,5,10
b,1,6,11
c,2,7,12
d,3,8,13
e,4,9,14
  • 代码将有列索引但没有行索引的数据,read_csv会自动添加上行索引(即使原数据有行索引)。
  • read_csv读取的数据类型为Dataframe
  • obj.dtypes可以查看每列的数据类型
obj_2=pd.read_csv('f:/test.csv',header=None,names=range(2,5))
print(obj_2)

    2   3   4
0  c1  c2  c3
1   0   5  10
2   1   6  11
3   2   7  12
4   3   8  13
5   4   9  14

header=None

即指明原始文件数据没有列索引,这样read_csv为自动加上列索引,除非你给定列索引的名字。

obj_2=pd.read_csv('f:/test.csv',header=0,names=range(2,5))
print(obj_2)

   2  3   4
0  0  5  10
1  1  6  11
2  2  7  12
3  3  8  13
4  4  9  14

header=0

表示文件第0行(即第一行,索引从0开始)为列索引,这样加names会替换原来的列索引。

parse_dates :

布尔类型值 or int类型值的列表 or 列表的列表 or 字典(默认值为 FALSE)

  • TRUE:则尝试解析索引
  • 由int类型值组成的列表(例子 [1,2,3]):作为单独数据列,分别解析原始文件中的1,2,3列
  • 由列表组成的列表(例子[[1,3]]):将1,3列合并,作为一个单列进行解析
  • 字典(例子{‘foo’:[1, 3]}):解析1,3列作为数据,并命名为foo

index_col:

int类型值,序列,FALSE(默认 None)
将真实的某列当做index(列的数目,甚至列名)
例子:

obj_2=pd.read_csv('test.csv',index_col=0)
print(obj_2)

   c1  c2  c3
a   0   5  10
b   1   6  11
c   2   7  12
d   3   8  13
e   4   9  14

obj_2=pd.read_csv('test.csv',index_col=[0,2])
print(obj_2)

     c1  c3
  c2        
a 5    0  10
b 6    1  11
c 7    2  12
d 8    3  13
e 9    4  14

index_col为指定数据中那一列作为Dataframe的行索引,也可以可指定多列,形成层次索引,默认为None,即不指定行索引,这样系统会自动加上行索引。

squeeze:

布尔值,默认FALSE
TRUE 如果被解析的数据只有一列,那么返回Series类型。

data_parser:

函数,默认None
指定将输入的字符串转换为可变的时间数据。Pandas默认数据读取格式:‘YYYY-MM-DD HH:MM:SS’,若读取的数据不是默认格式,则要人工定义。定义例子:

def parser(x):
    return datetime.strptime('190'+x, '%Y-%m')
#后面的就是输入的文件的格式

使用pandas中read_csv读取csv数据时,对于有表头的数据,将header设置为空(None),会报错:pandas_libsparsers.pyx in pandas._libs.parsers.raise_parser_error() ParserError: Error tokenizing data. C error: Expected 4 fields in line 2, saw 5 。

1.3其它说明 

   查看pandas官方文档发现,read_csv读取时会自动识别表头,

数据有表头时不能设置header为None,否则报错(默认读取第一行,即header=0);

数据无表头时,若不设置header,第一行数据会被视为表头,应传入names参数设置表头名称或设置header=None

2. to_csv方法

与read_csv相对应的是保存dataframe文件到csv的to_csv方法:

xyzi_df.to_csv("./data.csv", sep=",", header=False, index=False) # 无head,无index保存

xyzi_df.index.name = 'index'  #添加index,否则直接导出左侧多逗号
xyzi_df.to_csv("./data.csv", sep=",", header=True, index=True)  # 有head,有index保存,首行有逗号变为去除逗号

xyzi_df.to_csv("./data.csv", sep=",", header=True, index=False) # 有head,无index保存,去掉首行逗号

xyzi_df.to_csv("./data.csv", sep=",", header=None, index=True)  # 无head,有index保存

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

read_csv 与 to_csv方法 的相关文章

  • 在 python pandas 中将级别附加到列索引

    我有几个具有相同列的数据框 我只想在它们的索引上合并 print df1 out Value ISO Id 200001 8432000000 USD 200230 22588186000 USD 200247 4633000000 USD
  • xlsxwriter 错误:AttributeError:“工作簿”对象没有属性“add_format”

    我正在使用 xlsxwriter 进行一些简单的条件格式化 但是当我运行下面的代码时出现此错误 AttributeError Workbook object has no attribute add format 我已经更新了 xlsxwr
  • 分类报告 - 精度和 F 分数定义不明确

    我从 sklearn metrics 导入了classification report 当我输入我的np arrays作为参数我收到以下错误 usr local lib python3 6 dist packages sklearn met
  • 反转 Python 整数的位

    给定一个十进制整数 例如 65 如何反转 Python 中的底层位 即以下操作 65 01000001 10000010 130 看来这个任务可以分为三步 将十进制整数转换为二进制表示形式 反转位 转换回十进制 第 2 步和第 3 步看起来
  • 我应该使用 Pylons 还是 Pyramid?

    我本来打算从 Django 迁移到 Pylons 但后来我遇到了 Pyramid 塔架和金字塔有什么区别 我读了一些文字塔书 http pylonsbook com 目前涵盖 Pylons 0 9 7 并且想知道它是否是 Pylons 和
  • 如何将魔杖图像对象转换为 numpy 数组(不使用 OpenCV)?

    我正在使用将 pdf 文件转换为图像Wand http docs wand py org en 0 4 4 然后 我使用 ndimage 进行进一步的图像处理 我想直接将 Wand 图像转换为 ndarray 我已经看到答案here htt
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • python解释器自动重启而不返回答案

    调用递归函数时 python解释器会自动重新启动吗 我正在编写一个快速排序算法 并尝试对一个大的数字数组 顺序 10 4 进行排序 但是当我尝试对整个数组进行排序时 python 正在重新启动 即给我 重新启动 并且存储在内存中的所有值 函
  • 组内条件计数

    我想在之后进行条件计数groupby 例如 按列的值分组A 然后计算每组中值出现的频率5出现在列中B 如果我整个过程都这样做DataFrame 只是len df df B 5 所以我希望我能做到df groupby A df B 5 siz
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • 获取每行最后 150 行中所有正值的计数 - pandas

    我有以下数据集 其中有列Date and Values对于每一行 它两者都有 ve and ve价值观 我必须计算最后 150 行的所有正值 在每一行 因此前 150 行将具有空值 然后 以下行将具有最后 150 行的计数 ve行 类似地
  • numpy 相关系数错误 - RuntimeWarning:true_divide 中遇到无效值

    当我尝试查找数据系列之间的相关性时 出现以下错误 gt gt gt i 1 1 1 gt gt gt j 2 2 2 gt gt gt import numpy as np gt gt gt np corrcoef i j usr loca
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • Django Rest框架Json解析

    我想解析传入的POSTdjangoviews py 文件中的数据 发布数据 number 17386372 data banana apple grapes 这是我尝试读取上述传入数据的方法request views py class Fr
  • 如何重写一个列表列表,使值的“孤岛”彼此唯一?

    假设我有一个列表列表 或更概念上准确的二维数组 list 1 1 0 0 0 1 1 2 0 0 0 2 2 2 0 0 0 0 2 0 0 0 0 1 0 我想识别具有相同值的不同区域并重写列表 以便每个区域都有唯一的值 如下所示 lis
  • 2D 矩阵上的 Numpy where()

    我有一个像这样的矩阵 t np array 1 2 3 foo 2 3 4 bar 5 6 7 hello 8 9 1 bar 我想获取行包含字符串 bar 的索引 在一维数组中 rows np where t bar 应该给我索引 0 3
  • 仅将唯一行插入 SQLite (python)

    我在用着cursor executemany将 CSV 文件中的批量行插入到 SQLite 表中 根据主键字段 其中一些行预计会重复 当我执行该命令时 可以预见的是 我会收到完整性错误 并且不会插入任何内容 如何有选择地仅插入非重复行 而无
  • 带有远程解释器的 Python 控制台无法在 PyCharm 中接受输入

    我是使用 PyCharm 进行远程开发的新手 我设置了一个远程环境 除了一个例外之外它工作正常 无法在控制台中接受用户输入 在控制台中运行以下语句时 控制台被阻塞 提示 上一个命令仍在运行 请等待或按控制台中的 Control C 来中断
  • 与仅调用依赖函数/类相比,在 FastAPI 中使用 Depends 有哪些优点?

    FastAPI 提供了way https fastapi tiangolo com tutorial dependencies 通过其自己的依赖关系解析机制来管理依赖关系 例如数据库连接 它类似于一个pytest夹具系统 简而言之 您在函数
  • 评估 df 每行中的日期时间函数是否落在另一个 df 中的日期时间范围内

    我是 python 新手 需要一些帮助来解决有关日期时间函数的问题 I have df a其中有一列标题为time 我正在尝试创建一个新专栏id在这个df a 我想要id根据时间是否包含在某个时间范围内来确定的列df b date 和 da

随机推荐

  • 虚拟机与物理机的三种连接方式

    引言 vmware为我们提供了三种网络工作模式 它们分别是 Bridged 桥接模式 NAT 网络地址转换模式 Host Only 仅主机模式 我们在刚刚接触它们的时候 常常被搞的晕头转向 今天我就为大家介绍一下这三种连接方式 桥接模式 桥
  • web前台传递时间日期格式转换为java.util.date,initBinder或者@DateTimeFormat方式

    方法1 根据前台传递的日期格式 在后台创建一个参数绑定的方法 将对应的日期字符串 转换为 java util date 从界面传递参数到spring后台controller类中 日期格式默认只能传long类型的时间戳 如果想要传递格式化的日
  • 阿里云ECS部署Nginx配置域名访问

    目录 前言 环境 具体步骤 服务器 域名 SSL证书 Nginx配置 前言 记录下阿里云服务器建站的过程 回回建 回回忘 尴尬 环境 ECS Centos7 6 Nginx 具体步骤 服务器 首先 需要购买一台服务器 域名 需要购买一个域名
  • Python unicode equal comparison failed

    用python进行判断的时候 如果包含中文会报错 name 这里是中文 if i name print right 修改成 name 这里是中文 decode utf 8
  • 聊聊undefined 和 undeclared

    一 undefined 在Js中 有两个表示 空 的值undefined和null 其中比较有用的是 undefined undefined 是一个值为 undefined 的类型 JavaScript语言也定义了一个全局变量 它的值是 u
  • oracle存储过程----异常的写法介绍

    上一篇 oracle存储过程 case条件控制语句的用法 oracle存储过程 异常介绍 参考PL SQL 存储过程中的异常来自于程序本身 也有的来自开发人员自定义的数据 而所有的这些错误我们称之为异常 编译时的错误不能称为异常 esmp
  • kubeadm配置虚拟机k8s集群

    环境 centos7 vm pro windows terminal termius 虚拟机 硬件配置 2核2G 实验用 具体可根据电脑调整 配置3台 master01 node01 node02 通过克隆虚拟机直接复制 配置通一项以后建议
  • spark-submit 报错 Initial job has not accepted any resources

    spark submit 报这样的错误 WARN scheduler TaskSchedulerImpl Initial job has not accepted any resources check your cluster UI to
  • [pytest源码4]-pluggy之Plugin注册逻辑分析

    前言 本篇将详细对plugin的注册逻辑进行分析 个人拙见 有错请各位指出 如果的我的文章对您有帮助 不符动动您的金手指给个Star 予人玫瑰 手有余香 不胜感激 GitHub pluggy注册逻辑分析性 我们来详细分析一下plugin的注
  • 有道无术,术尚可求,有术无道,止于术

    有道无术 术尚可求 有术无道 止于术 老子 道德经 道和术在一直是一个引起人们广泛讨论的话题 古今中外许多人对此皆有见解 道和术放在道德和能力上来说 到底哪个更重要许多名人名言中都有阐述 1 因为道德是做人的根本 根本一坏 纵然使你有一些学
  • 一文精通常量池

    大家好 今天来和大家一起探索下Java的常量池 在阅读本篇之前 我为大家准备了一个测试 共15道判断题 每题1分 满分15分 大约花费1 2分钟时间 如果你全部答对了 那么恭喜你大神 本篇可能已经满足不了你了 如果结果不理想也不要气馁 读完
  • OpenCV进阶--图像变换(三)

    继上文 五 图像透视变换 首先透视变换是按照物体成像投影规律进行变换 即将物体重新投影到新的成像平面 在透视变换中 透视前的图像和透视后的图像之间的变换关系可以用一个3 3的变换矩阵表示 该矩阵可以通过两幅图像中4个对应点的坐标求取 因此透
  • 【Linux基础】stat函数

    stat函数 函数描述 获取文件属性 函数原型 include
  • iOS开发之数据存取(一)——SQLite

    概览 在iOS开发中数据存储的方式可以归纳为两类 一类是存储为文件 另一类是存储到数据库 例如前面IOS开发系列 Objective C之Foundation框架的文章中提到归档 plist文件存储 包括偏好设置其本质都是存储为文件 只是说
  • 计算机答卷方式 闭卷满分为90分,关于《计算机应用技术专业综合理论》考试说明.doc...

    计算机应用技术专业综合理论 考试大纲 一 考试性质 广东省高等职业院校对口自主招生考试是以中等职业技术学校对口专业应届毕业生和中等职业相关专业毕业 有两年以上实践经验的社会人员为对象的选拔性考试 二 考试内容 计算机应用技术专业综合理论 的
  • IDEA jdk 下载安装及项目中的配置

    进入 Oracle官网 的 Java 界面 Oracle官网地址 https www oracle com java 1 JDK下载 1 1 在网站页面滚动鼠标下拉定位到Java 选择Oracle JDK 1 2 选择Java archiv
  • Xcode警告、错误解决方法总结

    从sdk3 2 5升级到sdk 7 1中间废弃了很多的方法 还有一些逻辑关系更加严谨了 1 警告 xoxoxoxo is deprecated 解决办法 查看xoxoxoxo的这个方法的文档 替换掉这个方法即可 2 警告 Declarati
  • excel函数去重_Excel去除重复值方法汇总

    经常有人问到excel中去除重复值的问题 这个问题本来也一直有很多人讨论 现将做法汇总出来共大家参考 什么是重复值 顾名思义 重复值是指一组数据中有重复记录 去除这些重复的记录就叫去除重复值 具体有两种情况 源数据如图 去重后 结果一 所有
  • 蓝桥杯青少组python:第十三届省赛第一场

    选择题 1 下列二进制中最大数是 A 110 B 1010 C 1100 D 1001 2 以下方法 不是对文件读操作的是 A readline B readlines C readtext D read 3 以下对turtle库中函数描述
  • read_csv 与 to_csv方法

    1 read csv方法 1 1 返回数据类型 DataFrame 二维标记数据结构 列可以是不同的数据类型 是最常用的pandas对象 如同Series对象一样接受多种输入 lists dicts Series DataFrame Ser