热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSV文件的存取

CSV文件介绍CSV(Comma-SeparatedValues),中文通常叫做逗号分割值。CSV文件由任意数目的记录(行&

CSV 文件介绍

  CSV(Comma-Separated Values),中文通常叫做逗号分割值。CSV文件由任意数目的记录(行)组成,每条记录由一些字段(列)组成,字段之间通常以逗号分割,当然也可以用制表符等其他字符分割,所以CSV又被称为字符分割值。

CSV 文件存储

  to_csv(self, path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.')

  参数
     ----------
  path_or_buf:str或文件句柄,默认为None。文件路径或对象,如果提供“None”,则返回结果为一个字符串。如果传递了一个文件对象,则应该打开`newline =''`,禁用通用换行符。  

import pandas as pd# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65, 70, 64, 67],'身高': [178, 177, 180, 175]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 进行一些操作
df['身高'] = df['身高']+1
print(df)
# 存储为CSV文件
df.to_csv('data.csv') # 相对地址
df.to_csv('E:/data.csv') # 绝对地址格式1
df.to_csv(r'E:\data.csv') # 绝对地址格式2
df.to_csv('E:\\data.csv') # 绝对地址格式3

Code

  sep:str,默认为','。长度为1的字符串,输出文件的字段分隔符。设置为'\t',记事本打开更加清晰。 

df.to_csv('data.csv', sep='\t')

Code

  na_rep:str,默认为''。缺少数据表示。当字典中数据为None时,可通过设置该参数显示为任意字符串。

import pandas as pd# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65, None, 64, 67],'身高': [178, 177, 180, None]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 进行一些操作
df['身高'] = df['身高']+1
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', na_rep='null')

Code

  float_format:str,默认为None。浮点数的格式字符串,四舍五入。

import pandas as pd# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65.238, 70.6, 64, 67.333],'身高': [178, 177.89, 180, 175.0]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', float_format='%.2f')

Code

  columns:sequence,可选。要写的列。

import pandas as pd# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65.238, 70.6, 64, 67.333],'身高': [178, 177.89, 180, 175.0]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', columns=['代号', '身高'])

Code

  header:bool或str列表,默认为True。写出列名。如果给出了一个字符串列表,那就是假定是列名的别名。如果设置为False,则在追加的时候不在写入列名称。

import pandas as pd# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65.238, 70.6, 64, 67.333],'身高': [178, 177.89, 180, 175.0]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', header=['a', 'b', 'c']) # 更改列名
df.to_csv('data.csv', sep='\t', header=False) # 在追加的时候不写入列名称

Code

  index:bool,默认为True。写行名(索引)。如果设置为None或False,则在写入的时候不添加索引。

df.to_csv('data.csv', sep='\t', index=False)

Code

  index_label:str或sequence,或False,默认为None。 

df.to_csv('data.csv', sep='\t', index_label='索引')

Code

  mode:str,默认为'w'。在追加时可设置为'a'。

df.to_csv('data.csv', sep='\t', index=False, header=False, mode='a')

Code

  encoding:str,可选。表示要在输出文件中使用的编码的字符串,默认为Python 2上的“ascii”和Python 3上的“utf-8”。当使'utf-16'编码时用Exel打开不会出现乱码问题。

df.to_csv('data.csv', sep='\t', encoding='utf-16')

Code

  compression:str,默认为'infer'。压缩模式具有以下可能值:{'infer', 'gzip','bz2','zip','xz',None}。如果'infer'和'path_or_buf'是路径,然后从以下检测压缩扩展名:'.gz','.bz2','.zip'或'.xz'。 (否则没有压缩)。

df.to_csv('data.csv.gz', sep='\t', compression='gzip')

Code

  quoting:来自csv模块的可选常量,默认为csv.QUOTE_MINIMAL。如果你设置了`float_format`,然后浮点数转换为字符串,从而转换为csv.QUOTE_NONNUMERIC,将它们视为非数字。

import pandas as pd
import csv# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'体重': [65.238, 70.6, 64, 67.333],'身高': [178, 177.89, 180, 175.0]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', float_format='%.2f', quoting=csv.QUOTE_NONNUMERIC)
df.to_csv(
'data1.csv', sep='\t', quoting=csv.QUOTE_NONNUMERIC)

Code

  quotechar:str,默认'\"'。长度为1的字符串。用于引用字段的字符。

df.to_csv('data.csv', sep='\t', float_format='%.2f', quotechar='|')

Code

  line_terminator:string,可选。要在输出中使用的换行符或字符序列文件。默认为`os.linesep`,这取决于操作系统。调用此方法(对于Linux,'\ n',对于Windows,'\ r \ n',即)。

df.to_csv('data.csv', sep='\t', float_format='%.2f', line_terminator='\n')

Code

  chunksize:int或None。一次写一行。

df.to_csv('data.csv', sep='\t', header=False, mode='a', chunksize=1)

Code

  date_format:str,默认为None。日期时间对象的格式字符串。

import pandas as pd
import datetime# 输入一些数据(字典格式)
data = {'代号': ['A', 'B', 'C', 'D'],'时间': [datetime.datetime.now(), datetime.datetime.now(), datetime.datetime.now(), datetime.datetime.now()],'身高': [178, 177.89, 180, 175.0]
}
# 将字典格式转化为DataFrame格式
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
# 存储为CSV文件
df.to_csv('data.csv', sep='\t', float_format='%.2f', date_format='%Y-%m-%d')

Code

  doublequote:bool,默认为True。在字段内控制`quotechar`的引用。

df.to_csv('data.csv', doublequote=False, escapechar='|')

Code

  escapechar:str,默认为None。长度为1的字符串,用于转义`sep`和`quotechar`的字符。

df.to_csv('data.csv', doublequote=False, escapechar='|')

Code

  decimal:str,默认为'.'。 字符识别为小数点分隔符。

df.to_csv('data.csv', sep='\t', float_format='%.2f', decimal=':')

Code

CSV 文件读取

  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, skipfooter=0, 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, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

  参数
     ----------
  filepath_or_buffer:str,path对象或类文件对象,任何有效的字符串路径都是可接受的。字符串可以是URL,有效URL方案包括http,ftp,s3和file。本地文件可以是:file://localhost/path/to/table.csv。

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

Code

  sep:str,默认为','。读取时应该与写入时的seq保持一致。

df = pd.read_csv('data.csv', sep='\t')

Code

  delimiter:str,默认为"None",别名为sep。当delimiter参数和sep参数同时存在时,sep参数无效。

import pandas as pddf = pd.read_csv('data.csv', delimiter='\t')
print(df)
df
= pd.read_csv('data.csv', sep=',', delimiter='\t')
print(df)

Code

   header:int,int列表,默认为'infer',用作列名的行号和数据的开头。默认行为是推断列名:如果没有传递名称,行为与``header = 0``相同,列名从文件的第一行推断出来,如果显式传递列名,则行为与``header = None``相同。显式传递``header = 0``以便能够替换现有名称。标题可以是整数列表,其指定列上的多索引的行位置,例如,[0,1,3]。 将跳过未指定的干预行(例如,跳过此示例中的2)。 请注意,如果``skip_blank_lines = True``,则此参数忽略注释行和空行,因此``header = 0``表示第一行数据而不是文件的第一行。

import pandas as pddf = pd.read_csv('data.csv', delimiter='\t')
print(df)
df
= pd.read_csv('data.csv', delimiter='\t', header=0)
print(df)
df
= pd.read_csv('data.csv', delimiter='\t', header=None)
print(df)
df
= pd.read_csv('data.csv', delimiter='\t', header=[0, 3])
print(df)

Code

  names:array-like,可选。要使用的列名列表。 如果file不包含标题行,那么你应该显式传递``header = None``。 此列表中的重复项将导致发出“UserWarning”。

df = pd.read_csv('data.csv', delimiter='\t', names=['索引', '代号', '体重', '身高'])

Code

  index_col:int,sequence或bool,可选,用作行索引的列编号或者列名。如果给定一个序列则有多个行索引。如果在每行的末尾有一个带有分隔符的格式错误的文件,您可以考虑使用``index_col = False``来强制pandas不使用第一列作为索引(行名称)。

df = pd.read_csv('data.csv', delimiter='\t', index_col=['代号', '体重'])

Code

  usecols:list-like或callable,可选,返回列的子集。如果类似于列表,则所有元素必须是位置(即文档列中的整数索引)或对应于用户在“names”中提供或从文档标题行推断的列名的字符串。

df = pd.read_csv('data.csv', delimiter='\t', usecols=[0, 1])

Code

  squeeze:bool,默认为False。如果解析的数据只包含一列,则返回一个Series。

df = pd.read_csv('data.csv', delimiter='\t', usecols=[2], squeeze=True)

Code

  prefix:str,可选。Prefix在没有标题时添加到列号,例如 'X'代表X0,X1,......

df = pd.read_csv('data.csv', delimiter='\t', header=None, prefix='X')

Code

  mangle_dupe_cols:bool,默认为True。Duplicate列将指定为'X','X.1',...'X.N',而不是'X'...'X'。 如果列中存在重复的名称,则传入False将导致数据被覆盖。该参数值暂时不可以被修改。

df = pd.read_csv('data.csv', delimiter='\t', mangle_dupe_cols=True)

Code

  dtype:列的类型名或字典 ,可选,用来设置每列数据的数据类型。

df = pd.read_csv('data.csv', delimiter='\t', dtype={'索引': float, '身高': float})

Code

   engine : {'c', 'python'},可选。使用的分析引擎,C引擎速度更快,而python引擎目前功能更加完善。

df = pd.read_csv('data.csv', delimiter='\t', engine='c')

Code

  converter:dict,可选。Dict用于转换某些列中的值的函数,键可以是整数或列标签。

df = pd.read_csv('data.csv', delimiter='\t', converters={'索引': float})

Code

  true_values:list,可选。Values考虑为True。

df = pd.read_csv('data.csv', delimiter='\t', true_values=['A'])

Code 

  false_values:list,可选。Values考虑为False。

df = pd.read_csv('data.csv', delimiter='\t', false_values=['B'])

Code

  skipinitialspace:bool,默认为False。分隔符后跳过空格

df = pd.read_csv('data.csv')
print(df)
df
= pd.read_csv('data.csv', skipinitialspace=True)
print(df)

Code

 

 

 


    

 

 

转:https://www.cnblogs.com/liumengsong/p/10755376.html



推荐阅读
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 深入理解 JMeter 定时器
    本文详细介绍了JMeter中定时器的功能和使用方法,探讨了其在性能测试中的重要性,并结合实际案例解释了如何合理配置定时器以模拟真实的用户行为。文章还涵盖了定时器的执行顺序及其与其他元件的相互作用。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • 利用R语言进行股票价格数据的线性回归分析
    本文介绍了如何使用R语言对Excel中的股票价格数据集执行线性回归分析。通过具体的代码示例,展示了数据的导入、处理及模型构建的过程。 ... [详细]
  • 主板市盈率、市净率及股息率的自动化抓取
    本文介绍了如何通过Python脚本自动从中国指数有限公司网站抓取主板的市盈率、市净率和股息率等关键财务指标,并将这些数据存储到CSV文件中。涉及的技术包括网页解析、正则表达式以及异常处理。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
author-avatar
wangtao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有