np读取csv文件_pythonpandas读写csv数据
官方介绍:pandas的官方手册:https://pandas.pydata.org/pandas-docs/stable/pandas官方读写数据文档:https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html
一、使用pandas读取和写入csv文件
pandas.read_csv()语法:1、使用pandas读取csv文件的全部数据:
- pd.read_csv("filepath",[encoding='编码'])
2、使用pandas读取csv文件的指定列方法:
- pd.read_csv("filepath",usecols=[0,1,2,...],[encoding='编码'])
3、使用pandas读取csv文件的指定行方法:
- pd.read_csv("filepath",[skiprows=n],nrows=m,[encoding='编码'])
pandas.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=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
常用参数解释:
- filepath_or_buffer #需要读取的文件及路径
- sep / delimiter 列分隔符,普通文本文件,应该都是使用结构化的方式来组织,才能使用dataframe
- header 文件中是否需要读取列名的一行,header=None(使用names自定义列名,否则默认0,1,2,...),header=0(将首行设为列名)
- names 如果header=None,那么names必须制定!否则就没有列的定义了。
- shkiprows= 10 # 跳过前十行
- nrows = 10 # 只去前10行
- usecols=[0,1,2,...] #需要读取的列,可以是列的位置编号,也可以是列的名称
- parse_dates = ['col_name'] # 指定某行读取为日期格式
- index_col = None /False /0,重新生成一列成为index值,0表示第一列,用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数字组成的列表(层次化索引)
- error_bad_lines = False # 当某行数据有问题时,不报错,直接跳过,处理脏数据时使用
- na_values = 'NULL' # 将NULL识别为空值
- encoding='utf-8' #指明读取文件的编码,默认utf-8
说明:① 读取csv/txt/tsv文件,返回一个DataFrame类型的对象。② 在读取的时候,默认会将第一行记录当成标题。如果没有标题,我们可以指定header=None。③ read_csv默认使用逗号作为分隔符,我们可以使用sep或delimiter来指定分隔符。④ 注意使用/修改为同一类型编码,否则会乱码。
# 案例:
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
print(np.__version__)
print(pd.__version__)
df = pd.read_csv(r"student.csv", header = None, sep=",",encoding="utf-8") #header = None,默认列名=0,1,2,3,...
df1 = pd.read_csv(r"student.csv", header = None,names=["id","name","sex","age","grade"], sep=",") #自定义列名
df2 = pd.read_csv(r"student.csv",header = None,index_col=None, sep=",") #默认自行生成行索引0,1,...
df3 = pd.read_csv(r"student.csv",header = None,index_col=[0], sep=",") #指定第1列作为行索引
df4 = pd.read_csv(r"student.csv",header=None,names=["id","name","sex","age","grade"],index_col=["name"], sep=",") #指定name列作为行索引
df5 = pd.read_csv(r"student.csv",header=None,usecols=[1,2,3],names=["name", "sex", "age"],index_col=0,sep=",") #指定列
display(df.head(3), df1.head(3), df2.head(3), df3.head(3), df4.head(3), df5.head(3))
1、使用pandas读取csv文件的全部数据:
pd.read_csv("filepath",[encoding='编码'])
如果存在编码(乱码)问题:(1)用记事本打开csv文件,另存为,编码格式改为utf-8然后用utf-8读取文件。(2)用 csv编码的 “GB18030” 解码方式读取文件。另外,由于python不支持中文,故一般在所有python代码开头第一行加上#coding=utf-8
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: df = pd.read_csv("E:\student.csv")
In [4]: print(df)
95002 刘晨 女 19 IS
0 95017 王风娟 女 18 IS
1 95018 王一 女 19 IS
...
20 95016 钱国 男 21 MA
In [5]: df = pd.read_csv("E:\student.csv",encoding='utf-8')
In [6]: print(df)
95002 刘晨 女 19 IS
0 95017 王风娟 女 18 IS
1 95018 王一 女 19 IS
...
20 95016 钱国 男 21 MA
细心观察数据,发现默认的他将我们的第一行数据当作是每个字段的标题啦。(1)打开csv文件(为了避免编码问题,最好使用Notepad++打开编写修改),在第一行添加每列(columns)数据的标题。
In [1]: import numpy as np
In [2]: import pandas as pd
In [36]: df = pd.read_csv("e:\student.csv",encoding='utf-8')
In [37]: print(df)
编码 姓名 性别 年龄 班级
0 95002 刘晨 女 19 IS
1 95017 王风娟 女 18 IS
2 95018 王一 女 19 IS
仔细观察数据,很多时候我们需要的字段并不是那么多,现在我不想看到年龄的字段。
2、使用pandas读取csv文件的指定列方法:pd.read_csv("filepath",usecols=[0,1,2,...],[encoding='编码'])
In [1]: import numpy as np
In [2]: import pandas as pd
In [38]: df = pd.read_csv("e:\student.csv",usecols=[0,1,2,4],encoding='utf-8')
In [39]: print(df)
编码 姓名 性别 班级
0 95002 刘晨 女 IS
1 95017 王风娟 女 IS
In [1]: import numpy as np
In [2]: import pandas as pd
In [40]: df = pd.read_csv("e:\student.csv",usecols=['姓名','班级'],encoding='utf-8')
In [41]: print(df)
姓名 班级
0 刘晨 IS
1 王风娟 IS
2 王一 IS
...
3、使用pandas读取csv文件的指定行方法:pd.read_csv("filepath",[skiprows=n],nrows=m,[encoding='编码'])
pd.read_csv(路径,skiprows=n,nrows=m),忽略前n行,往下读m行
In [1]: import numpy as np
In [2]: import pandas as pd
In [47]: df = pd.read_csv("e:\student.csv",skiprows=5,nrows=2,encoding='utf-8')
In [48]: print(df)
95014 王小丽 女 19 CS
0 95019 邢小丽 女 19 IS
1 95020 赵钱 男 21 IS
二、使用pandas写入CSV文件
df.to_csv(path_or_buf,[sep=',' , na_rep=' ', ....])
写入csv文件是最常用的,csv文件默认用’,’作为分隔符。
df.to_csv(path_or_buf=None, sep=’,’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None)
参数说明:
- path_or_buf:文件名、文件具体、相对路径、文件流等
- sep:文件分割符号,to_csv()的sep默认为’,’,可指定任意字符作为分隔符
- na_rep:将NaN转换为特定值。写入时NaN会被表示为空字符串,我们可能希望用其他值代替,如:‘- ’、‘/’、'NULL' 等
- columns:选择部分列写入。保留部分列且按列排序,columns=['B列列名','A列列名']
- header:忽略列名,header=None 不写入列名
- index:index=False 表示选择不写入索引
案例:pandas读取一个csv文件,将指定内容存入新的csv文件
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: df = pd.read_csv("e:\student.csv")
In [4]: print(df)
编码 姓名 性别 年龄 班级
0 95002 刘晨 女 19 IS
1 95017 王风娟 女 18 IS
2 95018 王一 女 19 IS
In [5]: df.to_csv("e:\student01.csv",sep=",",columns=['姓名','班级'],index=True)
In [6]: df = pd.read_csv('e:\student01.csv')
In [7]: print(df)
Unnamed: 0 姓名 班级
0 0 刘晨 IS
1 1 王风娟 IS
2 2 王一 IS
np读取csv文件_pythonpandas读写csv数据相关推荐
- python怎么读取csv文件-python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- python本地读csv文件_python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- python导入csv文件-python读写csv文件
今天闲来无事,写了会CSV,简单总结下csv具体操作 什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本 ...
- python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下)
该csv模块定义了以下功能: csv.reader(csvfile,dialect ='excel',** fmtparams) 返回一个reader对象,它将迭代给定csvfile中的行. csvf ...
- r语言读取C盘的csv文件,R语言开发之CSV文件的读写操作实现
在R中,我们可以从存储在R环境外部的文件读取数据,还可以将数据写入由操作系统存储和访问的文件.这个csv文件应该存在于当前工作目录中,以方便R可以读取它, 当然,也可以设置自己的目录,并从那里读取文件 ...
- java将数据写入csv文件,从csv文件中读取数据
全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...
- python readcsv读取gbk编码文件_python读写csv文件
今天闲来无事,写了会CSV,简单总结下csv具体操作 什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本 ...
- pandas python csv_python:pandas合并csv文件的方法(图书数据集成)
数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformatio ...
- 用python的pandas打开csv文件_使用CSV模块和Pandas在Python中读取和写入CSV文件
什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据.CSV是一种紧凑,简单且通用的数据交换通用格式.许多在线服务允许其用户将网站中的表格数据导出到CSV文件中.CSV文件将 ...
最新文章
- boost::asio异步模式的C/S客户端源码实现
- 基于R语言的时间序列分析预测
- 排序算法的python实现
- java try 返回值_JAVA的try... catch finally的return返回值问题
- 如何利用Excel进行同类项合并?
- 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
- Ocelot.JwtAuthorize:一个基于网关的Jwt验证包
- 工业控制中无线局域网应用前景分析
- std:move基本用法和理解
- php获取网页内容方法总结
- 超好用的Redis管理及监控工具:TreeNMS
- 利润表模板excel_财务EXCEL必修课 (20小时)
- 计算机系统大作业——hello的一生
- matlab中uigetfile命令的应用
- 基于51单片机的教室人数检测
- No1.初来乍到,请多指教
- Ubuntu20.04安装有道词典记录
- 第八届中国云计算大会胜利启幕云计算产业进入应用迅速普及期
- Revit MEP 平面视图中(立管)怎么设置二维表达?
- Cypress设置Cookie
热门文章
- 2017.10.7 最长上升子序列 思考记录
- 2017.9.30 CF #R4 D 思考记录
- 2017.6.4 problem b 失败总结
- 2017.3.27 生成魔咒 思考记录(有史以来最不容易)
- 计算机视觉导论试题,计算机视觉基础复习.docx
- 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...
- vi 不保存退出_vi / vim编辑器介绍
- python开发环境管理:pip和virtualenv
- 一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数
- 建站倒计时html,网页短时间维护倒计时js代码