Pandas教程-将Pandas DataFrame转换为CSV
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的字符串。它的默认值是逗号(,)。
na_rep: 它是表示空值或缺失值的字符串值。空字符串是默认值。
float_format: 它还包含一个负责为浮点数格式化字符串的字符串值。
columns: 这是一个可选参数,用于指定在CSV输出中需要包含的列的序列。
header: 它通常包含一个布尔值或一个字符串列表。如果将其值设置为False,则列名不会写入输出。默认值为True。
如果我们将一个字符串列表作为输入传递,它通常会在输出中写入列名。文件的字符串列表的长度应与写入CSV文件中的列数相同。
index: 如果值设置为True,则索引包含在CSV数据中。否则,索引值不会写入CSV输出。
index_label: 它包含一个str值或一个序列,用于指定索引的列名。默认值为None。
mode: 它是一个用于写入模式的字符串值。默认值是w.
encoding: 它是一个可选参数,包含表示输出文件中使用的编码的字符串值。编码的默认值是UTF-8。
compression: 它是一个字符串值,用于在以下值之间压缩模式{'infer', 'gzip', 'bz2', 'zip', 'xz', None}。如果infer和path_or_buf是类似路径的,则从扩展名检测压缩:'.gz','.bz2','.zip'或'.xz',否则不进行压缩。
quoting: 它是一个可选参数,定义为csv模块的常数。其默认值为csv.QUOTE_MINIMAL。如果设置了float_format,则浮点值将被转换为字符串,并且csv.QUOTE_NONNUMERIC将被视为非数字值。
quotechar: 它是一个长度为1的字符串值。它是用于引用字段的字符。
line_terminator: 它是一个可选参数,指的是一个字符串值。它的主要任务是终止行。这是要在输出文件中使用的换行字符。其默认值设置为os.linesep,主要取决于操作系统。调用一个个体方法来定义操作系统('n'用于linux,'rn'*用于*Windows)。
chunksize: 它包含None或整数值,并定义当前时间要写入的行数。
date_format: 它包含str值,并用于为日期时间对象格式化字符串。date_format的默认值是None。
doublequote: 它包含一个布尔值,默认值为True。它主要用于控制字段内quotechar的引号。
escapechar: 它包含一个长度为1的字符串值。基本上,它是用于转义sep和quotechar的字符。escapechar的默认值是None。
decimal: 它包含一个字符串值,用于标识一个字符作为小数分隔符。例如:对于欧洲数据使用','。
返回:
它返回str或None值。如果名为path_or_buf的参数值为None,则返回生成的csv格式作为字符串。否则,返回None。
示例1: 下面的示例将DataFrame转换为CSV字符串:
import pandas as pd
data = {'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
print('DataFrame Values:\n', info)
# default CSV
csv_data = info.to_csv()
print('\nCSV String Values:\n', csv_data)
输出:
DataFrame Values:
Name ID Language
0 Smith 101 Python
1 Parker 102 JavaScript
CSV String Values:
,Name,ID,Language
0 ,Smith,101,Python
1 ,Parker,102,JavaScript
示例2: 下面的示例显示CSV输出文件中的空值或缺失数据表示:
import pandas as pd
data = {'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': [pd.NaT, 'JavaScript']}
info = pd.DataFrame(data)
print('DataFrame Values:\n', info)
csv_data = info.to_csv()
print('\nCSV String Values:\n', csv_data)
csv_data = info.to_csv(na_rep="None")
print('CSV String with Null Data Values:\n', csv_data)
输出:
DataFrame Values:
Name ID Language
0 Smith 101 NaT
1 Parker NaT JavaScript
CSV String Values:
,Name,ID,Language
0,Smith,101,
1,Parker,,JavaScript
CSV String with Null Data Values:
,Name,ID,Language
0,Smith,101,None
1,Parker,None,JavaScript
示例3: 下面的示例指定CSV输出的分隔符。
import pandas as pd
data = {'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': [Python, 'JavaScript']}
info = pd.DataFrame(data)
print('DataFrame:\n', info)
csv_data = info.to_csv(sep='|')
print(csv_data)
输出:
DataFrame:
Name ID Language
0 Smith 101 Python
1 Parker NaT JavaScript
|Name|ID|Language
0|Smith|101|Python
1|Parker||JavaScript