精华内容
下载资源
问答
  • python读写csv文件
    千次阅读
    2022-01-06 20:04:11

    csv文件可用excel或者pycharm打开

    python中读取csv文件的方法是用pandas.read_csv('file.csv'),这个方法读取csv文件,然后得到一个dataframe对象,即read_csv()函数的作用在于:将一个csv文件转化为dataFrame对象(pandas中的一种数据组织形式)

    import pandas as pd
    
    df = pd.read_csv('data.csv')
    
    print(df.to_string()) 

    更多相关内容
  • 假设上述csv文件保存为”A.csv”,如何用Python像操作Excel一样提取其中的一行,也就是一条记录,利用Python自带的csv模块,有2种方法可以实现: 方法一:reader 第一种方法使用reader函数,接收一个可迭代的对象...
  • 读取CSV文件,把csv文件放在一份list中。 ''' import csv class readCSV(object): def __init__(self,path="Demo.csv"): #创建一个属性用来保存要操作CSV的文件 self.path=path try: #打开一个csv文件,并赋予读...
  • 拿到一份用分号分割的CSV文件,在Win下是无法正确读取的,因为CSV模块默认调用的是Excel的规则。 所以我们在读取文件的时候需要添加分割符变量。 import csv import os cwd = os.getcwd() print (Current folder is...
  • 读取csv时遇到一个长数字(比较...https://www.jb51.net/article/164692.htm (见文章【 4、使用csv读写csv文件示例代码】) import csv csvFile = open('5000 Sales Records.csv','r') reader = csv.reader(csvFil
  • 使用python读取csv文件,转成字典存储,支持int,str,float等
  • 这篇文章主要介绍了Python读取csv文件实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建一个csv文件,命名为data.csv,文本内容如下: root,123456...
  • python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来。 在编写python程序的时候需要csv模块或者pandas模块,其中csv模块使不需要重新下载安装的,pandas...
  • python读写csv文件

    2021-03-17 02:55:00
    csv释义逗号分隔值(Comma-Separated Values,CSV...CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完...

    csv释义

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。

    读取csv文件

    reader(filename),可以使用reader()方法来创建一个对象从csv文件中读取数据。

    官方文档:csv.reader(csvfile, dialect='excel', **fmtparams)  //csvfile是任何可以迭代的对象(如果是文件对象则用newline=''来打开它),dialect翻译为方言用于定制解析器来解析数据,**fmtparams为解析器参数

    读文件时,输入数据的每一行都会解析,并返回一个列表

    创建一个csv文件写入如下数据,python读取:

    c49d5079afa41e108b5bd0814cea83ef08b.jpg

    >>> with open('test.csv','r',newline='') as csvfile:

    ... reader=csv.reader(csvfile)>>> for i inreader:

    ...print(i)

    ...

    ['name', 'tel', 'address', 'age']

    ['zhang', '15111111111', 'beijing', '33']

    ['li', '13822222222', 'wuhan', '28']

    ['liu', '15933333333', 'hainan', '25']

    写csv文件

    writer(filename),使用writer方法来写数据

    csv.writer(csvfile, dialect='excel', **fmtparams)  //参数与读完全基本相同

    写一段代码来测试

    importcsv

    with open('test1.csv','w',newline='') as f:

    writer=csv.writer(f)

    writer.writerow(('name', 'tel', 'address', 'age'))

    writer.writerow(('zhang', 15111111111, 'beijing', 33))

    writer.writerow(('li', 13822222222, 'wuhan', 28))

    writer.writerow(('liu', 15933333333, 'hainan', 25))

    with open('test1.csv','r',newline='') as f:

    reader=csv.reader(f)for i inreader:print(i)

    结果:

    ['name', 'tel', 'address', 'age']

    ['zhang', '15111111111', 'beijing', '33']

    ['li', '13822222222', 'wuhan', '28']

    ['liu', '15933333333', 'hainan', '25']

    发现结果与输入不同,默认引号模式的原因

    写文件时可用quoting来设置引号模式

    默认为:writer = csv.writer(f,quoting=csv.QUOTE_NONNUMERIC)  //非数字加引号

    可改为:

    QUOTE_ALL:所有字段加引号

    QUOTE_MINIMAL:特殊字段加引号

    QUOTE_NONE:都不加引号

    方言

    用于定制解析器,无需将各个参数单独传入阅读器和书写器,可以组成一起构成一个方言对象

    标准库包括两个方言:excel和excel-tabs,默认为excel

    csv方言参数:

    属性

    默认值

    含义

    delimiter

    ,

    字段分隔符

    doublequote

    True

    控制quotechar实例是否成对

    escapechar

    None

    指示一个转义序列

    lineterminator

    \r\n

    书写器使用这个结束一行

    quotechar

    "

    用来包围含特殊字符的字段

    quoting

    QUOTE_MINIMAL

    控制引号行为

    skipinitialspace

    False

    忽略字符定界符前的空白符

    将”行“转换为字典

    DictReader和DictWriter类将行转化为字典而非行

    官方文档:class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)

    参数说明:

    fieldnames:字典的键,默认为第一行数据

    restkey:若所读行字段多余给出的键个数,剩余键由restkey给出

    restkey:若所读行字段少于给出的键个数,剩余值由restval给出

    例如上述test1.csv文件

    with open('test1.csv','r',newline='') as f:

    reader=csv.DictReader(f)for i inreader:print(i)

    结果:

    {'address': 'beijing', 'name': 'zhang', 'age': '33', 'tel': '15111111111'}

    {'address': 'wuhan', 'name': 'li', 'age': '28', 'tel': '13822222222'}

    {'address': 'hainan', 'name': 'liu', 'age': '25', 'tel': '15933333333'}

    DictWriter类似DictReader,提供一个列表作为键

    writer = csv.DictWriter(f,list)

    官方文档:class csv.Dictwriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

    更多详细解释可访问python标准库

    展开全文
  • 如下所示: # -*- coding:utf-8 -*- # auth:ckf # date:20170703 import pandas as pd import cStringIO import warnings from sqlalchemy import create_engine import sys reload(sys) sys.setdefaultencoding('...
  • python读取CSV文件

    2022-06-22 16:31:10
    1.1 参数 对参数 ,参见:文件读写操作。 1.2.2 读操作 1.2.3 写操作 2. 利用pandas读取 2.1 函数接口 返回值为 dataframe

    1. 文件读取函数

    with open(doc_name, mode, encoding="utf-8") as f:
    	data = f.read() 等读写操作
    

    1.1 参数

    参数:doc_name, 文件路径
    参数: mode,
    	常用模式:
    		1.'r',只读 用read()
    		2.'w', 只写 用write()       # 会清除之前写的内容,若没有,则新建
    		3.'a', 追加内容,用write()    #会在已经写的内容基础上追加新的内容
    	
    参数:encoding,默认"utf-8",
    	注意:要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数
    

    对参数 mode,参见:文件读写操作

    1.2 file 对象属性

    1.2.1 属性

    file.closed	表示文件已经被关闭,否则为False
     
    file.mode	文件打开时使用的访问模式
    
    file.encoding	文件所使用的编码
    
    file.name	文件名
    
    file.newlines	
    	未读取到行分隔符时为None;
    	只有一种行分隔符时为一个字符串;
    	当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表。
    	
    file.softspace	为0表示在输出一数据后,要加上一个空格符,1表示不加
    

    1.2.2 读操作

    file.read([size])   将文件数据作为字符串返回,可选参数size控制读取的字节数
    			 注意:当读取大文件时,反复调用read(size)方法,每次最多读取size个字节的内容。
    
    file.readline([size])   每次读取一行内容
    file.readlines([size])   返回文件中行内容的列表,size参数可选
    

    1.2.3 写操作

    file.write(str)   将字符串写入文件
    file.writelines(strings)   将字符串序列写入文件
    

    2. 利用pandas读取

    2.1 函数接口

    返回值为 dataframe

    pandas.read_csv(filepath_or_buffer, 			# 文件路径名,字符串类型
    				sep=NoDefault.no_default, 		# 分隔符
    				delimiter=None, 				# 定界符,备选分隔符(如果指定该参数,则sep参数失效) 
    				header='infer', 				# 指定行数用来作为列名,以及数据开始行数
    				names=NoDefault.no_default, 	# 要使用的列名
    				index_col=None, 				# 用作 DataFrame 的行标签的列
    				usecols=None, 					# 返回所有列的子集,即选中的列;	
    				squeeze=None, 					# 如果解析后的数据只包含一列,则返回 Series,默认值为 False
    				prefix=NoDefault.no_default, 	# 在没有列标题时,给列添加前缀。例如:添加‘X’ 成为 X0, X1, ... 
    				mangle_dupe_cols=True, 			# 将重复的列‘X’...’X’表示为‘X.0’...’X.N’。默认为True,如果设定为false则会将所有重名列覆盖
    				dtype=None, 					# 每列数据的数据类型
    				engine=None, 					# 解析引擎
    				converters=None, 				# 用于转换特定列中值的函数的定义。键可以是整数或列标签
    				true_values=None, 				# 列表类型,将其视为真 True
    				false_values=None, 				# 列表类型,将其视为假 False
    				skipinitialspace=False, 		# 忽略分隔符后的空白(默认为False,即不忽略)
    				skiprows=None, 					# 需要忽略的行数
    				skipfooter=0, 					# 从文件尾部开始忽略。 (c引擎不支持) 
    				nrows=None, 					# 需要读取的行数(从文件头开始算起)。
    				na_values=None, 				# 用于替换NA/NaN的值
    				keep_default_na=True, 			# 解析数据时是否包含默认 NaN 值。
    				na_filter=True, 				# 是否检查丢失值(空字符串或者是空值)
    				verbose=False, 					# 是否打印各种解析器的输出信息,例如:“非数值列中缺失值的数量”等。 
    				skip_blank_lines=True, 			# 如果为True,则跳过空行;否则记为NaN。 
    				parse_dates=None, 				# 解析日期
    				infer_datetime_format=False, 	# 如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型
    				keep_date_col=False, 			# 如果连接多列解析日期,则保持参与连接的列。
    				date_parser=None, 				# 于解析日期的函数,默认使用dateutil.parser.parser来做转换。
    				dayfirst=False, 				# DD/MM格式的日期类型
    				cache_dates=True, 				# 如果为 True,则使用惟一的、已转换日期的缓存来应用日期时间转换。
    				iterator=False, 				# 返回一个TextFileReader 对象,以便逐块处理文件。
    				chunksize=None, 				# 文件块的大小
    				compression='infer', 			# 直接使用磁盘上的压缩文件。
    				thousands=None, 				# 千分位分割符
    				decimal='.', 					# 字符中的小数点
    				lineterminator=None, 			# 行分割符,只在C解析器下使用。
    				quotechar='"', 					# 用作标识开始和解释的字符。
    				quoting=0, 						# 控制csv中的引号常量。
    				doublequote=True, 				# 双引号,当单引号已经被定义,并且quoting 参数不是QUOTE_NONE的时候,使用双引号表示引号内的元素作为一个元素使用。
    				escapechar=None, 				# 当quoting 为QUOTE_NONE时,指定一个字符使的不受分隔符限值。
    				comment=None, 					# 标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。
    				encoding=None, 					# 指定字符集类型,通常指定为'utf-8';指定为Python标准字符编码
    				encoding_errors='strict', 		# 如何对待编码错误
    				dialect=None, 					# 如果没有指定特定的语言,如果sep大于一个字符则忽略。
    				error_bad_lines=None, 			# 如果一行包含太多的列,那么默认不会返回DataFrame ,如果设置成false,那么会将改行剔除(只能在C解析器下使用)。	 
    				warn_bad_lines=None, 			# 如果error_bad_lines =False,并且warn_bad_lines =True 那么所有的“bad lines”将会被输出(只能在C解析器下使用)。 
    				on_bad_lines=None, 				# 指定遇到错误行(字段太多的行)时要做什么。可选参数:‘error’, ‘warn’, ‘skip’
    				delim_whitespace=False, 		# 指定是否使用空格(例如’或’)作为 sep。
    				low_memory=True, 				# 分块加载到内存,再低内存消耗中解析。
    				memory_map=False, 				# 如果使用的文件在内存内,那么直接map文件使用。使用这种方式可以避免文件再次进行IO操作 
    				float_precision=None, 			# 指定 C 引擎应该为浮点值使用哪个转换器
    				storage_options=None)			# 对特定存储连接有意义的额外选项
    

    2.2 重要参数解释

    2.2.1 常用参数

    参数:filepath, 			# 文件路径名,字符串类型
    参数:sep,用于分割csv文件的分隔符;默认值为 ","
    		注意:	1.当 engine="c"时,不能为空;
    				2.当 engine="python"时,可以为空,python会自动探索分隔符;
    				3.当 sep 是长度超过 1 的字符时,会被python视为正则表达式分割,并且忽略数据中的逗号;
    参数:engine,解析引擎
    		可选值:	1. "c",快
    				2. "python",基本功能更完善
    				3. "pyarrow",支持多线程。
    

    2.2.2 列名索引参数

    参数:header, 可选类型:int, list of int, None;默认值 ‘infer’
    		作用:指定行数用来作为列名,以及数据开始行数;
    		注意:	1.默认值 ‘infer’ 是推断列名;
    				2.如果没有传递名称,则默认为与 header = 0 相同,并且从文件的第一行推断出列名称;
    				3.如果显式传递列名称,则行为与 header = None 相同;
    				4.如果 header = 0 则会替换掉原来的列名;
    参数:names,array类型,要使用的列名,即最后结果中的列名;
    参数:index_col, 可选类型:int, str, sequence of int / str,  False, 默认值:None
    		作用:用作 DataFrame 的行标签的列,可以作为字符串名称或列索引给出。
    		注意:	1.如果给定 int/str 序列,则使用 MultiIndex;
    				2.index_col=False 用来强制使pandas不使用第一列作用索引;
    参数:dtype,关于列的字典类型;
    		作用:指定每列数据的数据类型			
    		案例:{‘a’: np.float64, ‘b’: np.int32} 	
    

    2.2.3 内容读取选择(行列)

    参数:usecols,列表类型
    		作用:返回所有列的子集,即选中的列;				
    		注意:	1.若给定了names,则不能使用文件的标题行;
    参数:skiprows,列表类型
    		作用:要跳过的行数;
    		注意:	1.从文件开始处算起,第一行为 0;
    参数: nrows,整型;
    		作用:要读取的行数(从文件头开始算起),用于从大文件中读取一些小样本
    

    2.2.4 缺失值参数

    参数: na_values,scalar, str, list-like, or dict
    		作用: 用于替换NA/NaN的值。如果是字典,则指定对应列空值的替换								
    		默认为解析NaN的顺序为:'',#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘<NA>’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’.
    参数: keep_default_na,布尔类型,默认值为 True
    		作用:解析数据时是否包含默认 NaN 值;
    		注意:与 na_values 有关;
    		
    参数:na_filter,布尔类型,默认为 True
    		作用:是否检查丢失值(空字符串或者是空值),当为大文件且无缺失值时,可提升读取速度;
    

    2.2.5 大文件参数

    参数:iterator,布尔类型,默认为false 				
    	作用:返回一个TextFileReader 对象,以便逐块处理文件。
    参数:chunksize, int, default None
    	作用: 文件块的大小,一次读取多少行数据
    参数:compression,字符串或字典类型,默认值'infer', 			
    	作用:直接使用磁盘上的压缩文件。
    	如果使用infer参数,则使用 gzip, bz2, zip或者解压文件名中以‘.gz’,.bz2’,.zip, or ‘xz’这些为后缀的文件,否则不解压。
    	如果使用zip,那么ZIP包中必须只包含一个文件。
    	设置为None则不解压。 
    

    2.2.6 日期参数

    3. Python直接读取

    import csv
    
    with open(path_name) as f:
    	f_csv = csv.reader(f)
    	headers = next(f_csv)		# 获取表头
    	for row in f_csv:
    		pass 			# 获取每一行的数据进行操作
    

    3.1 数据类型转换

    column_types = [str, float, str, ..., int]
    with open('file_name.csv') as f:
    	f_csv = csv.reader(f)
    	headers = next(f_csv)		# 获取表头
    	for row in f_csv:
    		row = [convert(value) for convert, value in zip(column_types, row)]
    
    展开全文
  • 基于Python语言实现读写CSV数据文件

    1. 读取CSV文件

    csv.reader()

    该方法的作用相当于就是通过 ',' 分割csv格式的数据,并将分割好的每行数据存入列表中,并且还去除了每行最后分割产生的数据尾部的空格、换行符、制表符等等。

    import csv
    with open('data.csv',mode='r',encoding='utf-8-sig',newline='') as File:
        # 使用csv.reader()将文件中的每行数据读入到一个列表中
        reader = csv.reader(File, delimiter=',', quotechar=',', quoting=csv.QUOTE_MINIMAL)
        # 遍历列表将数据按行输出
        for row in reader:
            print(row)            
    

    在这里插入图片描述

    直接通过 索引 来访问每行数据的列元素

    for row in reader:
        print(row[0])
    

    在这里插入图片描述

    csv.DictReader()

    该方法将文件中的每行数据保存在 OrderedDict 中,此数据类型类似于嵌套着元组的列表,每个元组中的第一个元素为键,第二个元素为值,其中元组中的键来自于CSV数据中的表头信息。

    import csv
    results = []
    with open('data.csv',mode='r',encoding='utf-8-sig',newline='') as File:
        reader = csv.DictReader(File)
        for row in reader:
            print(row)
    

    在这里插入图片描述

    通过键值来读取部分信息

        for row in reader:
            print(row['MakeSpan'],row['WaitTime'])
    

    在这里插入图片描述

    关于DictReader()的更多内容尚未学习整理,如有需要可参考其他文章:CSV.DictReader()方法

    2. 写入CSV文件

    1. 首先需要导入读写csv需要用的包:
    import csv
    
    1. 使用open()函数打开一个文件,open()函数常用的参数:

      file:文件路径、文件名

      mode:打开模式,r(只读),w(只写),a(追加模式)

      newline:每行之间是否存在空行,默认存在空行,' ':没有空行。

    myFile = open('example2.csv', 'w', newline='')
    
    1. csv.writer模块,用于将数据写入CSV:

      csvfile:这 能够 是带有write()方法的任何对象。
      dialect=‘excel’:一个可选参数,用于定义特定于特定CSV的一组参数。
      fmtparam:可选参数,可用于覆盖现有的格式设置参数。

    writer = csv.writer(myFile)
    
    1. 使用writerow()和writerows()将数据写入到CSV文件中:

      writerow():将数据存到csv文件中的一行里,每个元素占用一个单元格

      writerows():将数据中的每一个列表存到CSV文件中的一行里,列表中每个元素占用一个单元格

    myData1 = [["这", "是", "writerow", "的", "效", "果"],
               ["这", "是", "writerow", "的", "效", "果"],
               ["这", "是", "writerow", "的", "效", "果"]]
               
    myData2 = [["这", "是", "writerows", "的", "效", "果"],
               ["这", "是", "writerows", "的", "效", "果"],
               ["这", "是", "writerows", "的", "效", "果"]]
    
    myFile = open('example2.csv', 'w', newline='')
    with myFile:
        writer = csv.writer(myFile)
        
        writer.writerow(myData1) 
        writer.writerows(myData2) 
    

    写入文件后的效果如下所示:
    在这里插入图片描述

    展开全文
  • Python读取CSV文件

    千次阅读 2020-11-29 18:12:21
    读取CSV文件Iterable:是一个行迭代器Dialect:默认的读取方式是以excel的形式去读下面是准备的csv格式的文档,我们来用python读取读取操作:读取结果如下:['class', 'name', 'sex', 'height', 'year']['1', '...
  • python读取csv文件并转为list的结果图,是python读取csv文件并转为list的详细每步的结果。
  • (缺点:有缺失值就无法读取) 读: import numpy my_matrix = numpy.loadtxt(open("1.csv","rb"),delimiter=",",skiprows=0) 写: numpy.savetxt('2.csv', my_matrix, delimiter = ',') 可能遇到的问题: ...
  • Python读取与写入CSV文件需要导入Python自带的CSV模块,然后通过CSV模块中的函数csv.reader()与csv.writer()来进行CSV文件读取与写入。 写入CSV文件 import csv # 需要import csv的文件包 out=open(aa.csv,'wb') ...
  • python读取csv 文件,提供了神经网络的程序,以及自编码器
  • 利用python 读写csv文件

    2021-01-19 23:41:42
    1、读文件 import csv ...读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。 list = [1, 2, 3, 4] out = open(outfile, w) csv_writer = csv.writer(out) csv_write
  • python 读取csv文件绘图

    千次阅读 2022-04-10 21:28:43
    python 读取csv文件数据,然后通过plot绘图。 #!/bin/bash python import csv import numpy as np from matplotlib import pyplot as plt col_types = [float, float, float, float, float, float, float] ...
  • data = pd.read_csv('taobao_data.csv', index_col='\u4f4d\u7f6e') data.drop(['宝贝', '卖家'], inplace=True, axis=1) data = data.groupby(['位置']).mean().sort_values(by='\u6210\u4ea4\u91cf') print(data....
  • python读写csv文件(写列表、字典)

    千次阅读 2022-03-31 17:16:55
    CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,546
精华内容 33,818
关键字:

python读写csv文件