read_csv文件读写参数详解————

2023-11-09

python pandas IO tools 之csv文件读写

英文原文:pandas IO tools

读取csv文件:pd.read_csv(),写入csv文件:pd.to_csv() 
pandas还可以读取一下文件: 
read_csv, 
read_excel, 
read_hdf, 
read_sql, 
read_json, 
read_msgpack (experimental), 
read_html, 
read_gbq (experimental), 
read_stata, 
read_sas, 
read_clipboard, 
read_pickle; 
相应的写入: 
to_csv, 
to_excel, 
to_hdf, 
to_sql, 
to_json, 
to_msgpack (experimental), 
to_html, 
to_gbq (experimental), 
to_stata, 
to_clipboard, 
to_pickle.

常用参数的读取csv文件

import pandas as pd
obj=pd.read_csv('f:/ceshi.csv')
print obj
print type(obj)
print obj.dtypes
  • 1
  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
  • 1

ceshi.csv为有列索引没有行索引的数据,read_csv会自动加上行索引,即使原数据集有行索引。 
read_csv读取的数据类型为Dataframe,obj.dtypes可以查看每列的数据类型

obj_2=pd.read_csv('f:/ceshi.csv',header=None,names=range(2,5))
print obj_2
  • 1
    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
  • 1

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

obj_2=pd.read_csv('f:/ceshi.csv',header=0,names=range(2,5))
print obj_2
  • 1
   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行(即第一行,python,索引从0开始)为列索引,这样加names会替换原来的列索引。

obj_2=pd.read_csv('f:/ceshi.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('f:/ceshi.csv',index_col=[0,2])
print obj_2
  • 1
      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,即不指定行索引,这样系统会自动加上行索引(0-)

obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[0,1,2,3])
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
  • 1
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,usecols=[1,2,3])
print obj_2
  • 1
    c2  c3
c1        
0    5  10
1    6  11
2    7  12
3    8  13
4    9  14
  • 1
  • usecols:可以指定原数据集中,所使用的列。在本例中,共有4列,当usecols=[0,1,2,3]时,即选中所有列,之后令第一列为行索引,当usecols=[1,2,3]时,即从第二列开始,之后令原始数据集的第二列为行索引。
obj_2=pd.read_csv('f:/ceshi.csv',index_col=0,nrows=3)
print obj_2
  • 1
   c1  c2  c3
a   0   5  10
b   1   6  11
c   2   7  12
  • 1

nrows:可以给出从原始数据集中的所读取的行数,目前只能从第一行开始到nrows行。

datetime handing 数据中日期处理

obj_3=pd.read_csv('f:/ceshi_date.csv',index_col=0,)
print obj_3
print type(obj_3.index)
  • 1
  • 2
  • 3
                   A  B  C
date                      
20090101           a  2  3
20090102           b  3  4
20090103           c  4  5
<class 'pandas.indexes.numeric.Int64Index'>
  • 11
obj_3=pd.read_csv('f:/ceshi_date.csv',index_col=0,parse_dates=True)
print obj_3
print type(obj_3.index)
  • 1
                   A  B  C
date                      
2009-01-01         a  2  3
2009-01-02         b  3  4
2009-01-03         c  4  5
<class 'pandas.tseries.index.DatetimeIndex'>
  • 1

parse_dates=True:可令字符串解析成时间格式。

data='date,value,cat\n1/6/2000,5,a\n2/6/2000,10,b\n3/6/2000,15,c'
print data
  • 1
date,value,cat
1/6/2000,5,a
2/6/2000,10,b
3/6/2000,15,c
  • 1
from StringIO import StringIO
print pd.read_csv(StringIO(data),parse_dates=[0],index_col=0)
  • 1
            value cat
date                 
2000-01-06      5   a
2000-02-06     10   b
2000-03-06     15   c
  • 1
print pd.read_csv(StringIO(data),parse_dates=[0],index_col=0,dayfirst=True)
  • 1
            value cat
date                 
2000-06-01      5   a
2000-06-02     10   b
2000-06-03     15   c
  • 1

US常用时间格式:MM/DD/YYYY,dayfirst=True:可将其改为DD/MM/YYYY

分隔符和阈值

tem='id|level|category\npatient1|123,000|x\npatient2|23,000|y\npatient3|1,234,018|z'
print tem
  • 1
id|level|category
patient1|123,000|x
patient2|23,000|y
patient3|1,234,018|z
  • 1
print pd.read_csv(StringIO(tem),sep='|')
  • 1
         id      level category
0  patient1    123,000        x
1  patient2     23,000        y
2  patient3  1,234,018        z
  • 1
print pd.read_csv(StringIO(tem),sep='|',thousands=',')
  • 1
         id    level category
0  patient1   123000        x
1  patient2    23000        y
2  patient3  1234018        z
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

read_csv文件读写参数详解———— 的相关文章

  • 学c语言的第一步,编译器的使用

    学习c语言在不同的平台 有不同的编译器 其中windows平台有visual studio的IDE codeblocks eclipsec c 和QT编译器 而在Linux平台有vi vim codeblocks eclipsec c 和Q
  • python dfs算法_2020蓝桥杯python组备战方法

    在蓝桥杯的程序设计比赛里新增加了python组 这是一个全新的组别 目前蓝桥杯官网已经开通了python的练习平台 链接http dasai lanqiao cn 如何准备2020年蓝桥杯python程序设计呢 我分为四个部分讲解 了解这四
  • python 深度学习 解决遇到的报错问题4

    目录 一 DLL load failed while importing imaging 找不到指定的模块 二 Cartopy安装失败 三 simplejson errors JSONDecodeError Expecting value
  • 三星gearvr控制器及手柄全部输入

    OVRInput Unified Input API OVRInput exposes a unified input API for multiple controller types It may be used to query vi
  • MySQL学习:50道经典题目(含参考答案)(更新中)

    50道经典MySQL练习题 参考博客 SQL经典50题练习 sql习题 不高冷面包人的博客 CSDN博客c 1 创建数据表 学生表 CREATE TABLE IF NOT EXISTS student student id INT 10 N
  • vant引入组件报错_在Vue中elementui组件库的基本使用

    今天我们来聊聊elemen ui组件库 Element 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 最近我做的项目几乎都是管理系统 所以 为了节省时间 开始使用 element ui 一个简单的管理系统来说 这
  • 将字符串和日期互相转换

    将字符串转换为日期 import datetime datestr 1993 01 01 print type datastr date datetime datetime strptime datestr Y m d print date
  • 沁恒CH32V307以及CH32VF103中断只能进一次的解决方法

    文章背景 笔者最近使用沁恒CH32V307处理器进行应用开发 基于RT Thread实时操作系统和LWIP做TCP和CAN的透传 因为官方BSP并没有适配RT Thread的CAN驱动 暂时将RT Thread作为普通实时系统使用 先不对C
  • qt读写CSV文件

    最近的要用到CSV格式的数据 所以这篇文章讲述一下QT读取CSV文件数据 xls文件是Excel电子表格的文件格式 而csv是一种比较通用的文件格式 xls文件只能用Excel才能打开 而csv文件可以用Excel 记事本 文本编辑器打开
  • vue 基础教程(四) 表单控件绑定 购物车 表单修饰符

    1 vue 表单控件绑定 v model 再来一个最简单的内容 div div
  • YOLOV5学习笔记(九)——损失函数

    1 Yolov5损失函数分析 2 bbox 回归损失 v5 使用的是 CIoU Loss 后续又优化出EIOU Loss如下所示 论文 Focal and efficient IOU loss for accurate bounding b
  • 启动dbforge studio for mysql的调试功能

    1 安装dbforge studio for mysql 2 使用dbforge studio for mysql 并以root身份连接数据库后编写一个存储过程 3 右击存储过程选择Debug 然后选择Step Into 4 打断点就可以调
  • Python中defaultdict与lambda表达式的配合使用

    环境 Python 3 defaultdict是collections模块下的一个类 这个类是dict的一个子类 重写了一个方法并增加了一个事件变量 在实例化的时候 第一个参数提供给default factory的初始化函数 这个参数可以是
  • python爬取肯德基KFC全国门店2021-01-11

    python爬取肯德基KFC全国门店 改进版 之前 参考两位网友的代码 爬取全国KFC门店 发现有些许问题 在参考网友代码的基础上 进行改进 最终爬取了全国KFC门店 思路如下 第一步 通过KFC门网页 获取所在KFC下的城市列表 存为列表
  • 通过集成FastJsonHttpMessageConverter将返回报文统一加密处理

    在编写接口中 为了安全起见 会将报文进行加密处理 如果每个返回报文都在controller处进行加密 当加密方式发生变化或多渠道接入返回不同密文时 改动较为繁琐 通过集成FastJsonHttpMessageConverter将返回报文可统
  • 网络线缆连接器和线槽

    一 信息插座 1 信息插座简介 信息插座是终端 工作站 与水平干线子系统连接的接口 在水平干线子系统中双绞线的两 端是直接压接到配线架和信息插座中的 不需要跳线 2 信息插座的配置 综合布线系统的设计 应该根据实际情况确定 所需信息插座个数
  • Pycharm配置优化

    优化python第三方库 优化界面 连接远程服务器 注意路径问题
  • 【华为OD统一考试B卷

    题目描述 3020年 空间通信集团的员工人数突破20亿人 即将遇到现有工号不够用的窘境 现在 请你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母 a z 和数字 0 9 两部分构成 新工号由一段英文字母开头 之后跟随一段数字
  • 一起学Docker:CMD与ENTRYPOINT的区别

    CMD CMD指令为启动的容器指定默认要运行的程序 程序运行结束 容器也就结束 CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖 类似于 RUN 指令 用于运行程序 但二者运行的时间点不同 CMD 在do
  • MQTT--Qt5编写MQTT-client客户端

    库的下载地址 https github com emqtt qmqtt 好不容易编译成功 于是写下经验 编译环境 桌面环境 Windows10 Qt5版本 开始 1 下载库文件 https github com emqtt qmqtt 2

随机推荐