Pandas数据导入和导出:CSV、Excel、MySQL、JSON

导入MySQL查询结果:read_sql

python 复制代码
import pandas

con = "mysql+pymysql://user:pass@127.0.0.1/test"
sql = "SELECT * FROM `student` WHERE id = 2"

# sql查询
df1 = pandas.read_sql(sql=sql, con=con)
print(df1)

导入MySQL整张表:read_sql_table

python 复制代码
# 整张表
df2 = pandas.read_sql_table(table_name="student", con=con)
print(df2)

遍历数据:items、itertuples

python 复制代码
# 按列遍历
for key, value in df2.items():
    print("Key:", key)  # 列名
    print("Value:", value)  # 列数据

# 按行遍历
for row in df2.itertuples():
    print(row)  # 命名元组类型
    print(row[0], row[1], row[2])
    print(row.age)

导出到CSV:to_csv

python 复制代码
# 导出到csv
df2.to_csv(path_or_buf="sql_table.csv", columns=['id', 'name'])

函数参数:

path_or_buf: 字符串、路径对象、file-like对象、None,默认值None。

字符串、路径对象,或实现了write()函数的file-like对象,如果为None,则结果以字符串形式返回。

sep: 字符串,默认值','。分隔符,to_csv()默认分隔符为','。

na_rep: 字符串,默认值''(空字符)。缺失值表示方式。

float_format: 字符串,可调用对象,默认值None。

设置字符串格式化输出时浮点数的小数位数。如果给出一个可调用对象,他优先于其他数字格式参数。

columns: 序列,可选。要写入的列。

header: 布尔值或字符串组成的列表,默认值True。

写入列名称。如果传入一个字符串列表,则设置为列的别名。

index: 布尔值,默认值True。写入数据时会将行名称(索引)写入。

index_label: 字符串、序列、False,默认值None。

索引列的列标签(如果需要)。如果设置为None,并且header和index参数为True,则使用索引的names。如果使用MultiIndex,则应传入一个序列。如果设置为False,则不会打印索引名称的字段,使用index_label=False可在R中更方便地导入。

mode: 字符串,默认值'w'。Python写入模式,可用的写入模式与open()相同。

encoding: 字符串,可选。

表示要在输出文件中使用的编码的字符串,默认值为'utf-8'。如果path_or_buf是非二进制文件对象,则不支持encoding。

compression: 字符串或字典,默认值'infer'。用于在线压缩输出数据。

如果使用'infer',且如果path_or_buf参数是path-like对象,则从以下扩展名中检测压缩:'.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz'或'.tar.bz2'(否则不会进行压缩)。设置为None,表示不进行压缩。

quoting: 来自csv模块的可选常量。

默认为csv.QUOTE_MINIMAL。如果设置了float_format格式,则将float转换为字符串,csv.QUOTE_NONNUMERIC将其视为非数字格式。

quotechar: 字符串,默认值单边双引号"。长度为1的字符串,用于引用字段的字符。

lineterminator: 字符串,可选。

在输出文件中使用的换行字符或字符序列。默认为os.linesep,这取决于调用此方法的操作系统(linux为'\n',Windows为'\r\n')。

chunksize: 整数或Noen。一次写入chunksize行。

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

doublequote: 布尔值,默认值True。控制同一个quotechar参数引用的范围内的quoting参数。

escapechar: 字符串,默认值None。长度为1的字符串,用于避开sep参数和quotechar参数的字符。

decimal: 字符串,默认值'.'。识别为十进制分隔符的字符串。例如,对欧洲数据使用','。

errors: 字符串,默认值'strict'。

指定如何处理编码和解码错误。完整的选项列表,可以参考open()的错误参数,有strict, ignore, replace, surrogateescape, xmlcharrefreplace, backslashreplace, namereplace。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

导出到Excel:to_excel

python 复制代码
# 导出到Excel
df2.to_excel(excel_writer="1.xlsx", sheet_name='Sheet_name_1')

函数参数:

excel_writer: path-like、file-like、ExcelWriter对象。

文件路径或已有的ExcelWriter对象。

sheet_name: 字符串,默认值'Sheet1'。

即将写入DataFrame数据的sheet页名称。

na_rep: 字符串,默认值''(空字符)。缺失值表示方式。

float_format: 字符串,可选。

设置字符串格式化输出时浮点数的小数位数。如float_format='%.2f'。

columns: 字符串序列或字符串列表,可选。要写入的列。

header: 布尔值或字符串列表,默认值True。

写入列名称。如果传入一个字符串列表,则设置为列的列名。

index: 布尔值,默认值True。

写入数据时会将行名称(索引)写入。

index_label: 字符串或序列,可选。

索引列的列标签(如果需要)。如果没有设置,并且header和index参数为True,则使用索引的names。如果使用MultiIndex,则应传入一个序列。

startrow: 整数,默认值0。存储DataFrame时,设置左上方单元格的行。

startcol: 整数,默认值0。存储DataFrame时,设置左上方单元格的列。

engine: 字符串,可选。

写入时使用的引擎,openpyxl或xlsxwriter,可以通过io.excel.xlsx.writer, io.excel.xls.writer和io.excel.xlsm.write设置。

1.2.0版本后已弃用。

merge_cells: 布尔值,默认值True。

将MultiIndex和分层行写为合并单元格。

encoding: 字符串,可选。

设置写入excel文件的编码。仅xlsxwriter有必要设置此参数,其他writer本身就支持unicode。

1.5.0版本后已弃用。

inf_rep: 字符串,默认值'inf'。

无穷大的表示方式(在Excel中没有无穷大的原始表示)。

verbose: 布尔值,默认值True。

在错误日志中显示更多信息。

1.5.0版本后已弃用。

freeze_panes: 整数组成的元组,长度为2,可选。

指定要冻结单元格的最下方行和最右侧列。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

导出到Mysql:to_sql

python 复制代码
# 导入Mysql另一张表
from sqlalchemy import create_engine

engine = create_engine(con, echo=False)
df2.to_sql(name="student1", con=engine, if_exists="append", index=False)

导入CSV:read_csv

python 复制代码
import pandas  as pd
df = pd.read_csv('myc1.csv')
df

import pandas  as pd
df = pd.read_csv('myc1.csv',header=1)
df


import pandas  as pd
df = pd.read_csv('myc1.csv',header=3,names=['a','b','c','d','e'])
df

import pandas  as pd
df = pd.read_csv('myc1.csv',index_col='单价')
df

import pandas  as pd
df = pd.read_csv('myc1.csv',usecols=['水果名','单价'])
df

函数参数:

filepath_or_buffer: 字符串、路径对象、file-like对象,必填。

任何有效的字符串路径都可以接受,字符串可以是一个URL。有效的URL格式包括http、ftp、s3和file,对于文件URL,最好有个主机地址,例如一个本地文件可以是file://localhost/path/to/table.csv这样的格式。

如果传递路径对象,则pandas接受所有os.Pathlike对象。

通过file-like对象,可以引用具有read()方法的对象,例如文件处理(如内置函数open()函数)或StringIO。

sep: 字符串,默认值','。分隔符,read_csv()默认分隔符为','。

delimiter: 字符串,默认值None。sep的替代参数。

delim_whitespace: 布尔值,默认值False。

指定是否将空格(如' '或'\t')当作delimiter,等价于设置sep='\s+'。如果这个选项被设置为True,就不要给delimiter传参了。

header: 整数或整数组成的列表、None,默认值'infer'。

将某一行或几行设置成列名,默认'infer',自动推导。当设置为默认值或header=0时,将首行设为列名。

如果列名(names参数)传入指定值时要设置header=0或默认值。当header=0时,传入的列名会覆盖header=0取到的列名。

header可以用整数构成的列表指定多行,这样结果的列名就是多重索引MultiIndex,例如[1, 2, 3]。

如果指定的多个行中间跳过了某些行,则读取数据时跳过的行不会读取出来。如[0, 1, 3]跳过了索引2的行,读取的数据中也没有索引2这行的数据。

注意,如果skip_blank_lines=True,此参数将忽略空行和注释行,header=0表示第一行数据而非文件的第一行。

names: array-like,可选。

指定列名的列表,如果数据文件中不包含列名,通过names指定列名,那么应该设置header=None。列名列表中不允许有重复值。

index_col: 整数、字符串、整数/字符串组成的列表,False,默认值None,可选。

设置DataFrame的行索引,可以是数字或字符串(通过列名选一列作为行索引),默认None(行索引为整数索引,False也一样)。

如果传入一个字符串列表/整数列表,则组合为MultiIndex。

usecols: list-like或可调用对象,可选。

返回指定列的数据,用list-like的方式传入,即使只取一列数据也用列表,默认None,返回所有列的数据。

列表中可以是列名或列索引(但不能两者混合),列名的列表构成所有列的一个子集,列表中的元素顺序可以忽略,usecols=[0, 1]等价于usecols=[1, 0]。

如果想实例化一个自定义列顺序的DataFrame,可以使用pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']],这样列的顺序为['foo', 'bar']。

usecols也可以传入函数,函数将根据列名计算,返回计算结果为True的列名,如usecols=lambda x: x.upper() in ['AAA', 'BBB', 'DDD']。

使用usecols可以加快解析时间并降低内存使用率。

squeeze: 布尔值,默认值False。

如果解析的数据仅包含一个列,那么结果将以Series的形式返回,默认False。

1.4.0版本后已弃用。

prefix: 字符串,可选。

当没有header时,可通过该参数为数字列名添加前缀,默认None。

1.4.0版本后已弃用。

mangle_dupe_cols: 布尔值,默认值True。

当列名有重复时,将列名解析为'X', 'X.1', ...'X.N'。如果该参数为False,那么当列名中有重复时,前列会被后列覆盖。

1.5.0版本后已弃用。

dtype: 类型名,或列名和类型名组成的字典,默认值None。

指定部分列或整体数据的数据类型,如{'a': np.float64, 'b': np.int32}。

1.5.0版本新增。

engine: {'c', 'python', 'pyarrow'},可选。

使用的解析引擎。C引擎的速度更快,python引擎的功能更完备。多线程目前仅支持pyarrow引擎。

1.4.0版本新增。

converters: 字典,可选。

列和转换函数构成的字典,keys可以是列索引或列名,values是接收一个参数并返回已转换内容的函数。

true_values: 列表,可选。考虑为True的值。

false_values: 列表,可选。考虑为False的值。

skipinitialspace: 布尔值,默认值False。在分隔符之后跳过空格。

skiprows: list-like、整数、可调用对象,可选。

要跳过的行索引列表或文件开头要跳过的行数(int)。

可以传入可调用函数,函数将行索引作为参数传入,跳过返回计算结果为True的行,如skiprows=lambda x: x in [0, 2]。

skipfooter: 整数,默认值0。设置文件底部要忽略的行数。

nrows: 整数,默认值None。每次读取的行数,适用于读取大文件的片段。

low_memory: 布尔值,默认值True。

在处理数据时,解析时内存利用率降低,可能是混合类型推理。如果确认没有混合类型,请设置为False,或使用dtype参数指定类型。

注意,无论数据大小或迭代器参数是多少,整个文件都会被读取到单个DataFrame中。(仅C引擎有效)

memory_map: 布尔值,默认值False。

如果用filepath_or_buffer指定文件路径,可以将文件对象直接映射到内存并直接从内存访问数据。

使用此选项可以提高性能,因为不再有任何I/O开销。

na_values: 标量、字符串、list-like、字典,可选。

识别为NaN的其他字符串,指定某些值为空值。

默认情况下,以下值被解析为空值:'', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '', 'N/A', 'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null'。

keep_default_na: 布尔值,默认值True。

在解析数据时是否包括默认的空值。根据是否传入na_values,分为如下四种情况:

如果keep_default_na为True,并且指定na_values,则会将na_values指定的值和默认的NaN值解析为空值。

如果keep_default_na为True,并且未指定na_values,则只将默认的NaN值解析为空值。

如果keep_default_na为False,并且指定na_values,则只将na_values指定的值解析为空值。

如果keep_default_na为False,并且未指定na_values,则不会将任何字符串解析为空值。

注意,如果na_filter传入为False,则keep_default_na和na_values参数将被忽略。

na_filter: 布尔值,默认值True。

检测缺失值(默认的NaN和na_values指定的值)。在没有NaN的数据中,设置na_filter=False可以提高读取大文件的性能。

verbose: 布尔值,默认值False。指定放在非数字列中的NaN值的数量。

skip_blank_lines: 布尔值,默认值True。

如果为True,则跳过空白行,而不是将其解析为NaN值。

parse_dates: 布尔值、数字列表、列名列表、嵌套列表、字典,默认值False。

布尔值如果为True,尝试将索引当成日期解析。

整数或列名的列表,例如[1, 2, 3]尝试将1,2,3列分别作为单独的日期列进行解析。

嵌套列表,例如[[1, 3]]将第一列和第三列合并解析为一个日期列。

字典,例如{'foo': [1, 3]},将第一列和第三列解析为日期,并且合并成一列将列名重命名为foo。

如果列或索引包含不可解析的日期,则整个列或索引将作为对象数据类型返回,不会被更改。

infer_datetime_format: 布尔值,默认值False。

如果设置为True且有列启用了parse_dates,尝试推断日期格式以加快处理。

keep_date_col: 布尔值,默认值False。

如果设置为True且parse_dates指定组合多列,则保留原始列。

date_parser: 函数,可选。

用于将字符串列转换为datetime实例的函数,默认使用dateutil.parser.parser进行转换。

pandas将尝试以三种不同的方式调用date_parser,如果发生异常则前进到下一种方式:

  1. 将一个或多个数组(由date_parser定义)作为参数传递。

  2. 将date_parser定义的列中的字符串值(按行)连接起来存到一个数组中,并传递该数组。

  3. 使用一个或多个字符串(对应于date_parser定义的列)作为参数为每行调用一次date_parser。

dayfirst: 布尔值,默认值False。DD/MM格式日期,国际和欧洲格式。

cache_dates: 布尔值,默认值True。

如果为True,请使用已转换的唯一日期的缓存来应用日期时间转换。在分析重复日期字符串时,可能会产生显著的提速,尤其是具有失去偏移量的字符串。

iterator: 布尔值,默认值False。为get_chunk()迭代或获取数据块返回TextFileReader对象。

chunksize: 整数,默认值None。返回用于迭代的TextFileReader对象,每次读取chunksize行。

compression: 字符串或字典,默认值'infer'。

用于磁盘数据的实时解压缩。可选值:{'infer', 'zip', 'gzip', 'bz2', 'zstd', 'tar'}。

如果使用'infer',且如果filepath_or_buffer是以'.gz', '.bz2', '.zip', '.xz'结尾的字符串,则使用gzip、bz2、zip或xz,否则不进行解压缩。如果使用'.zip',则ZIP文件必须只包含一个要读取的数据文件。设置为None,表示不解压。

thousands: 字符串,可选。千分隔符。

decimal: 字符串,默认'.'。识别为小数点的字符。

float_precision: 字符串,可选。

指定C引擎浮点值使用哪个转换器。

None: 普通转换器。

high: 高精度转换器。

round_trip: 往返转换器。

lineterminator: 字符串(长度为1),可选。设置文件分行的字符,仅对C引擎有效。

quotechar: 字符串(长度为1),可选。用于表示引用项的开始和结束的字符,引用的项可以包括分隔符,他将被忽略。

quoting: 整数或csv.QUOTE_*实例,默认值0。

控制每个csv.QUOTE_*常量的字段引用行为。使用QUOTE_MINIMAL(0), QUOTE_ALL(1), QUOTE_NONNUMERIC(2)或QUOTE_NONE(3)中的一个。

doublequote: 布尔值,默认值True。

当指定quotechar并且quoting不是QUOTE_NONE时,指示是否将字段内的两个连续quotechar元素解释为单个quotechar元素。

escapechar: 字符串(长度为1),默认值None。

当quoting为QUOTE_NONE时,用于转义分隔符的一个字符串。

comment: 字符串,可选。

设置注释符号,注释掉行的其余内容。如果在一行开头匹配到该字符,则该行将被完全忽略,此参数必须为单个字符。

与空行(只要skip_blank_lines=True)一样,完全注释的行被参数header忽略,而不是被参数skiprows忽略。

例如,如果comment='#',解析'#empty\na,b,c\n1,2,3'且header=0,结果将'a,b,c'视为header。也就是第一行被comment注释了,header=0取到第二行。

encoding: 字符串,可选。读/写时使用UTF的编码(如'utf-8')。

encoding_errors: 字符串,可选,默认值'strict'。如何处理编码错误。

1.3.0版本新增。

dialect: 字符串或csv.Dialect实例,可选。

如果提供,则此参数将覆盖以下参数的值: delimiter, doublequote, escapechar, skipinitialspace, quotechar和quoting。

error_bad_lines: 布尔值,可选,默认值True。

字段过多(例如,带有过多逗号的csv行)的行默认会引发异常,不会返回DataFrame。如果设置为False,则这些"坏行"将从返回的DataFrame中删除。

1.3.0版本已弃用。

warn_bad_lines: 布尔值,可选,默认值True。

如果error_bad_lines为False,并且warn_bad_lines为True,则会为每个"坏行"输出一条警告。

1.3.0版本已弃用。

on_bad_lines: {'error', 'warn', 'skip'}中的一个、可调用对象,默认值'error'。

当遇到坏行(字段太多的行)时要执行的操作。

error: 遇到坏行时抛出异常。

warn: 遇到坏行时发出警告并跳过该行。

skip:遇到坏行时跳过他们,不抛出异常和警告。

1.3.0版本新增。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

导入Excel:read_excel

python 复制代码
import pandas

df = pandas.read_excel("1.xlsx", index_col=0, header=0)
print(df)

函数参数:

io: 字符串、字节、ExcelFile、xlrd.Book、路径对象或file-like对象。

任何有效的字符串路径都可以接受,字符串可以是一个URL,有效的URL格式包括http、ftp、s3和file,对于文件URL,最好有个主机地址,例如一个本地文件可以是file://localhost/path/to/table.xlsx这样的格式。

如果传递的是路径对象,则Pandas接受所有os.Pathlike对象。

通过file-like对象,可以引用具有read()方法的对象,例如文件处理(如内置函数open()函数)或StringIO。

sheet_name: 字符串、整数、列表、None,默认值0。

字符串用表格(sheet页)名称。整数用从0开始的表格索引(图表chart sheet不计算)。字符串/整数的列表用于获取多张表格。设置为None可获取所有表格(sheet页)。

示例:

0(默认): 将第一个sheet页读为一个DataFrame。

1: 将第二个sheet页读为一个DataFrame。

'Sheet1': 将名称为Sheet1的sheet页读为一个DataFrame。

None: 将所有sheet页读为一个DataFrame组成的字典。

header: 整数或整数组成的列表,默认值0。

用作DataFrame的列名的行(通过0开始的行索引选一行),如果用整数列表指定多个行,则组合为MultiIndex。如果没有header,则设置为None。

names: array-like,默认值None。

指定列名的列表,如果数据文件中不包含列名,通过names指定列名,同时应该设置header=None。names中不允许有重复值。

indexl_col: 整数或整数组成的列表,默认值None。

设置DataFrame的行索引(通过0开始的列索引选一列),如果用整数列表指定多个列,则组合为MultiIndex。如果没有用作行索引的列,则设置为None。如果使用usecols选择了数据的子集,则indexl_col将基于这个子集。

usecols: 字符串、list-like、可调用对象,默认值None。

None: 解析所有列。

字符串:解析以逗号分隔的Excel列字母和列范围。例如"A:E"或"A,C,E:F",E:F这种范围包括两端的列。

整数列表:解析列表中索引编号的列。

字符串列表:解析列表中指定列名的列。

可调用对象:根据可调用对象(如函数)判断每个列名,如果返回True,则解析该列。

使用usecols可以大大加快解析时间并降低内存使用率。

squeeze: 布尔值,默认值False。

如果解析的数据仅包含一个列,那么结果将以Series的形式返回。

1.4.0版本后已弃用。

dtype: 类型名,或列名和类型名组成的字典,默认值None。

指定部分列或整体数据的数据类型,如{'a': np.float64, 'b': np.int32}。

engine: 字符串,默认值None。

支持的引擎:xlrd, openpyxl, odf, pyxlsb。

xlrd: 支持旧式Excel文件(.xls扩展名)。

openpyxl: 支持最新的Excel文件格式(.xlsx)。

odf: 支持OpenDocument文件格式(.odf, .ods, .odt)。

pyxlsb: 支持二进制excel文件。

converters: 字典,默认值None。

列和转换函数构成的字典,keys可以是列索引或列名,values是接收一个参数(Excel单元格内容)并返回已转换内容的函数。

true_values: 列表,默认值None。考虑为True的值。

false_values: 列表,默认值None。考虑为False的值。

skiprows: list-like、整数、可调用对象,可选。

要跳过的行索引列表或文件开头要跳过的行数(int)。

可以传入可调用函数,函数将行索引作为参数传入,跳过返回计算结果为True的行,如skiprows=lambda x: x in [0, 2]。

nrows: 整数,默认值None。每次读取的行数,适用于读取大文件的片段。

na_values: 标量、字符串、list-like、字典,默认值None。

识别为NaN的其他字符串,指定某些值为空值。

默认情况下,以下值被解析为空值:'', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '', 'N/A', 'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null'。

keep_default_na: 布尔值,默认值True。

在解析数据时是否包括默认的空值。根据是否传入na_values,分为如下四种情况:

如果keep_default_na为True,并且指定na_values,则会将na_values指定的值和默认的NaN值解析为空值。

如果keep_default_na为True,并且未指定na_values,则只将默认的NaN值解析为空值。

如果keep_default_na为False,并且指定na_values,则只将na_values指定的值解析为空值。

如果keep_default_na为False,并且未指定na_values,则不会将任何字符串解析为空值。

注意,如果na_filter传入为False,则keep_default_na和na_values参数将被忽略。

na_filter: 布尔值,默认值True。

检测缺失值(默认的NaN和na_values指定的值)。在没有NaN的数据中,设置na_filter=False可以提高读取大文件的性能。

verbose: 布尔值,默认值False。指定放在非数字列中的NaN值的数量。

parse_dates: 布尔值、list-like、字典,默认值False。

布尔值如果为True,尝试将索引当成日期解析。

整数或列名的列表,例如[1, 2, 3]尝试将1,2,3列分别作为单独的日期列进行解析。

嵌套列表,例如[[1, 3]]将第一列和第三列合并解析为一个日期列。

字典,例如{'foo': [1, 3]},将第一列和第三列解析为日期,并且合并成一列将列名重命名为foo。

如果列或索引包含不可解析的日期,则整个列或索引将作为对象数据类型返回,不会被更改。

如果不希望将某些单元格解析为日期,只需将它们在Excel中的类型修改为"文本"。

对于非标准的datetime解析,在pd.read_excel之后使用pd.to_datetime。

date_parser: 函数,可选。

用于将字符串列转换为datetime实例的函数,默认使用dateutil.parser.parser进行转换。

pandas将尝试以三种不同的方式调用date_parser,如果发生异常则前进到下一种方式:

  1. 将一个或多个数组(由date_parser定义)作为参数传递。

  2. 将date_parser定义的列中的字符串值(按行)连接起来存到一个数组中,并传递该数组。

  3. 使用一个或多个字符串(对应于date_parser定义的列)作为参数为每行调用一次date_parser。

thousands: 字符串,默认值None。

千分位符。注意,此参数仅对Excel中存储为TEXT的列必须,其他任何数值列都会自动解析,无论显示格式如何。

decimal: 字符串,默认'.'。

识别为小数点的字符。注意,此参数仅对Excel中存储为TEXT的列必须,其他任何数值列都会自动解析,无论显示格式如何。

comment: 字符串,默认值None。

设置注释符号,注释掉行的其余内容。将一个或多个字符串传递给此参数以在输入文件中指示注释。注释字符串与当前行结尾之间的任何数据都将被忽略。

skipfooter: 整数,默认值0。设置文件底部要忽略的行数。

convert_float: 布尔值,默认值True。

将浮点整数转换为整数(如1.0 -> 1)。如果为False,则所有数字数据将被读取为浮点数,Excel将所有数字存储为内部浮点数。

1.3.0版本后已弃用。

mangle_dupe_cols: 布尔值,默认值True。

当列名有重复时,将列名解析为'X', 'X.1', ...'X.N'。如果该参数为False,那么当列名中有重复时,前列会被后列覆盖。

1.5.0版本后已弃用。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

导入JSON:read_json

read_json()

函数参数:

path_or_buf: 一个有效的JSON字符串、路径对象、file-like对象。

任何有效的字符串路径都可以接受,字符串可以是一个URL。有效的URL格式包括http、ftp、s3和file,对于文件URL,最好有个主机地址,例如一个本地文件可以是file://localhost/path/to/table.json这样的格式。

如果传递路径对象,则pandas接受所有os.Pathlike对象。

通过file-like对象,可以引用具有read()方法的对象,例如文件处理(如内置函数open()函数)或StringIO。

typ: {'frame', 'series'},默认值frame。要恢复的对象类型。

orient: 期望的JSON字符串格式。兼容的JSON字符串可以由to_json()生成。并具有相应的orient值。

split: 类似于{index -> [index], columns -> [columns], data -> [values]}的字典。

records: 类似于[{column -> value}, ... , {column -> value}]的列表。

index: 类似于{index -> {column -> value}}的字典。

columns: 类似于{column -> {index -> value}}的字典。

values: 仅为值的数组。

table: 类似于{'schema': {schema}, 'data': {data}}的字典。

typ == 'series': 默认为index,允许的值为{'split','records','index'},Series的索引在orient为index时必须是唯一的。

typ == 'frame': 默认为columns,允许的值为{'split','records','index', 'columns','values', 'table'},DataFrame的索引在orient为index和columns时必须是唯一的,DataFrame的列名在orient为index、columns和records时必须是唯一的。

dtype: 布尔值、字典,默认值None。

如果为True,推断dtypes,如果为列和dtype组成的字典,则使用字典中的dtype。如果为False,则不推断dtypes,仅适用于数据。

对于除table之外的所有orient参数,默认值为True。

convert_axes: 布尔值,默认值None。

尝试将列转换为正确的dtypes。对于除table之外的所有orient参数,默认值为True。

convert_dates: 布尔值或字符串列表,默认值True。

如果为True,则可以转换默认日期格式的列(取决于keep_default_dates参数),如果为False,则不会转换日期。

如果是一个列名组成的列表,则将转换这些列,并且也可以转换默认日期格式的列(取决于keep_default_dates参数)。

keep_default_dates: 布尔值,默认值True。

如果解析日期(convert_dates不是False),则尝试解析默认的日期格式列。列标签属于日期格式的列为:以'_at'结尾、以'_time'结尾、以'timestamp'开头、列名为'modified'或'date'。

numpy: 布尔值,默认值False。

直接解析为numpy数组。虽然column和index标签可能是非数字的,但仅支持数字数据。

注意,如果numpy=True,则每个组的JSON顺序必须相同。

1.0.0版本后已弃用。

precise_float: 布尔值,默认值False。

当解码字符串为双精度类型值时,设置为能使用更高精度(strtod)函数。默认(False)使用快速但不精确的内置功能。

date_unit: 字符串,默认值None。

用于检测转换日期的时间戳单位。默认情况下,尝试并检测正确的精度,如果不满足期望,则传递's', 'ms', 'us'或'ns'中的一个,以强制设置时间戳精度分别为秒、毫秒、微秒或纳秒。

encoding: 字符串,默认值'utf-8'。用于解码python3字节的编码。

encoding_errors: 字符串,默认值'strict'。

指定如何处理编码错误。完整的选项列表,可以参考open()的错误参数,有strict, ignore, replace, surrogateescape, xmlcharrefreplace, backslashreplace, namereplace。

1.3.0版本新增。

lines: 布尔值,默认值False。读取文件每行作为一个JSON对象。

chunksize: 整数,可选。

与lines=True结合使用,返回一个JSON读取器(JsonReader),每次迭代读取chunksize行。如果为None,则文件将一次性全部读入内存。

compression: 字符串或字典,默认值'infer'。

用于磁盘数据的实时解压缩。如果使用'infer',且如果path_or_buf参数是path-like对象,则从以下扩展名中检测压缩:'.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz'或'.tar.bz2'(否则不会进行压缩)。如果使用'zip'或'tar',则ZIP文件必须只包含一个要读取的数据文件。设置为None,表示不进行压缩。

nrows: 整数,可选。

每次从jsonfile中读取的行数。仅当lines参数为True时才能生效。如果为None,则返回所有行。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

导出JSON:to_json

DataFrame.to_json()

函数参数:

path_or_buf: 字符串、路径对象、file-like对象、None,默认值None。

字符串、路径对象,或实现了write()函数的file-like对象,如果为None,则结果返回一个JSON字符串。

orient: 字符串。期望的JSON字符串格式。

Series: 默认为index,允许的值为{'split', 'records', 'index', 'table'}。

DataFrame: 默认为columns,允许的值为{'split', 'records', 'index', 'columns', 'values', 'table'}。

split: 类似于{index -> [index], columns -> [columns], data -> [values]}的字典。

records: 类似于[{column -> value}, ... , {column -> value}]的列表。

index: 类似于{index -> {column -> value}}的字典。

columns: 类似于{column -> {index -> value}}的字典。

values: 仅为值的数组。

table: 类似于{'schema': {schema}, 'data': {data}}的字典。

date_format: 字符串,{None, 'epoch', 'iso'}。

日期类型的转换。epoch是时间戳,iso是ISO8601标准。

默认值取决于orient参数,对于orient='table',默认值为iso,对于其他的orient值,默认值为epoch。

double_precision: 整数,默认值10。对浮点值进行编码时使用的小数位数。

force_ascii: 布尔值,默认值True。强制设置编码字符串为ASCI。

date_unit: 字符串,默认值'ms'(milliseconds,毫秒)。

编码的时间单位,管理时间戳和ISO8601的精度,可选's', 'ms', 'us', 'ns'中的一个,分布表示秒、毫秒、微秒和纳秒。

default_handler: 可调用对象,默认值None。

如果一个对象没有转换成一个恰当的JSON格式,处理程序就会被调用。采用单个参数(即要转换的对象),并返回一个序列化的对象。

lines: 布尔值,默认值False。

如果orient参数为records,则将每行写入记录为json,orient参数是其他格式,将抛出ValueError异常,因为其他格式不是list-like。

compression: 字符串或字典,默认值'infer'。用于在线压缩输出数据。

如果使用'infer',且如果path_or_buf参数是path-like对象,则从以下扩展名中检测压缩:'.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz'或'.tar.bz2'(否则不会进行压缩)。设置为None,表示不进行压缩。

index: 布尔值,默认值True。

是否在JSON字符串中包含索引值。仅当orient为split或table时,才支持不包含索引(index=False)。

indent: 整数,可选。用于缩进每条记录的空格长度。

storage_options: 字典,可选。

对特定存储连接(例如主机、端口、用户名、密码等)有意义的额外选项。

参考

https://pandas.pydata.org/docs/reference/io.html

相关推荐
星星会笑滴1 分钟前
vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
vue.js·excel·express
武子康1 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
黑色叉腰丶大魔王1 小时前
《MySQL 数据库备份与恢复》
mysql
Ljw...1 小时前
索引(MySQL)
数据库·mysql·索引
OpsEye2 小时前
MySQL 8.0.40版本自动升级异常的预警提示
数据库·mysql·数据库升级
Ljw...2 小时前
表的增删改查(MySQL)
数据库·后端·mysql·表的增删查改
i道i10 小时前
MySQL win安装 和 pymysql使用示例
数据库·mysql
Oak Zhang11 小时前
sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
redis·mysql·缓存
久醉不在酒12 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
WindFutrue12 小时前
使用Mybatis向Mysql中的插入Point类型的数据全方位解析
数据库·mysql·mybatis