Pandas DataFrame如何转换为CSV(详细操作————)

本文概述

  • 句法
  • 参数
  • Return
Pandas的to_csv()函数用于将DataFrame转换为CSV数据。要将CSV数据写入文件, 我们只需将文件对象传递给函数即可。否则, CSV数据以字符串格式返回。
句法
DataFrame.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, 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 =” 将其打开, 并禁用通用换行符。
sep:表示字符串值, 由长度为1的字符串组成。默认值为comma(, )。
na_rep:它是指表示空值或缺失值的字符串值。空字符串是默认值。
float_format:它还包含一个字符串值, 该字符串值负责格式化浮点数的字符串。
columns:这是一个可选参数, 它引用一个序列来指定需要包含在CSV输出中的列。
标头:通常由布尔值或字符串列表组成。如果其值设置为False, 则列名称不会写入输出中。它的默认值为True。
【Pandas DataFrame如何转换为CSV(详细操作————)】如果我们将字符串列表作为输入传递, 则通常会将列名称写入输出中。文件列表的长度应与CSV文件中写入的列数相同。
index:如果将值设置为True, 则CSV数据中将包含索引。否则, 索引值不会写入CSV输出中。
index_label:它包含一个str值或一个序列, 用于指定索引的列名。默认值为” 无” 。
mode:它是指用于写入模式的字符串值。默认值为w。
encoding:这是一个可选参数, 由字符串值组成, 该字符串值表示在输出文件中使用的编码。编码的默认值为UTF-8。
压缩:它是一个str值, 用于压缩以下值{‘ infer’ , ‘ gzip’ , ‘ bz2’ , ‘ zip’ , ‘ xz’ , 无}中的模式。如果infer并且path_or_buf与路径类似, 它将从以下扩展名中检测压缩:’ .gz’ , ‘ 。bz2’ , ‘ 。zip’ 或’ .xz’ , 否则不会发生压缩。
引用:这是一个可选参数, 在csv模块中定义为常量。其默认值为csv.QUOTE_MINIMAL。如果设置了float_format, 则浮点值将转换为字符串, 并且csv.QUOTE_NONNUMERIC将被视为非数字值。
quotechar:引用长度为1的str值。它是用于引用字段的字符。
line_terminator:这是一个可选参数, 它引用一个字符串值。它的主要任务是终止线路。这是换行符, 将在输出文件中使用。其默认值设置为os.linesep, 这主要取决于操作系统。调用一个单独的方法来定义操作系统(对于linux为’ n’ , 对于’ Windows’ 为’ rn’ )。
chunksize:由None或整数值组成, 并定义当前要写入的行。
date_format:包含str值, 用于格式化datetime对象的字符串。 date_format的默认值为” 无” 。
doublequote:它包含一个布尔值, 其默认值为True。它主要用于控制字段内quotechar的报价。
escapechar:它包含一个长度为1的字符串值。基本上, 它是一个用于转义sep和quotechar的字符。 escapechar的默认值为” 无” 。
十进制:由一个字符串值组成, 该字符串值将字符标识为十进制分隔符。例如:对欧洲数据使用??’ , ‘ 。
Return它返回str或None值。如果名为path_or_buf的参数值是None, 它将以字符串形式返回结果csv格式。否则, 它返回None。
示例1:下面的示例将DataFrame转换为CSV字符串:
import pandas as pddata = http://www.srcmini.com/{'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}info = pd.DataFrame(data)print('DataFrame Values:\n', info)# default CSVcsv_data = http://www.srcmini.com/info.to_csv()print('\nCSV String Values:\n', csv_data)

输出
DataFrame Values:NameIDLanguage0Smith101Python1Parker102JavaScriptCSV String Values:, Name, ID, Language0, Smith, 101, Python1, Parker, 102, JavaScript

示例2:下面的示例显示CSV输出文件中的数据表示形式为空或丢失:
例:
import pandas as pddata = http://www.srcmini.com/{'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': [pd.NaT, 'JavaScript']}info = pd.DataFrame(data)print('DataFrame Values:\n', info)csv_data = http://www.srcmini.com/info.to_csv()print('\nCSV String Values:\n', csv_data)csv_data = http://www.srcmini.com/info.to_csv(na_rep="None")print('CSV String with Null Data Values:\n', csv_data)

输出
DataFrame Values:NameIDLanguage0Smith101NaT1ParkerNaTJavaScriptCSV String Values: , Name, ID, Language0, Smith, 101, 1, Parker, , JavaScriptCSV String with Null Data Values:, Name, ID, Language0, Smith, 101, None1, Parker, None, JavaScript

示例3:下面的示例指定CSV输出的分隔符??。
import pandas as pddata = http://www.srcmini.com/{'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': [Python, 'JavaScript']}info = pd.DataFrame(data)print('DataFrame:\n', info)csv_data = http://www.srcmini.com/info.to_csv(sep='|')print(csv_data)

输出
DataFrame:NameIDLanguage0Smith101Python1ParkerNaTJavaScript|Name|ID|Language0|Smith|101|Python1|Parker||JavaScript

    推荐阅读