四、Python数据挖掘(Pandas库)

四、Python数据挖掘(Pandas库)

目录:

  • 四、Python数据挖掘(Pandas库)
        • 一、Pandas 简介
        • 二、Pandas 三大结构之——DataFrame
          • 1.DataFrame 的创建
    • pd.DataFrame(data, index, columns, dtype=None, copy=False)
    • pd.DataFrame(dict)
    • pd.date_range(start=, end=, periods=, freq=, closed=None)
    • new_ = pd.to_datetime(datetime_list)
          • 2.DataFrame 的属性
          • 3.DataFrame 重设索引
    • DataFrame数组.index[下标/start:stop]
    • DataFrame数组.columns[下标/start:stop]
    • new_ = DataFrame数组.reset_index(drop=False)
    • new_ = DataFrame数组.set_index(keys, drop=True)
          • 4.其他常用方法
    • DataFrame数组.T
    • DataFrame数组.head([num])
    • DataFrame数组.tail([num])
    • DataFrame数组.iloc[行下标/start:stop[, start:stop]]
        • 三、Pandas 三大结构之——Panel
          • 1.MultiIndex
    • DataFrame数组.index.levels
          • 2.Panel
    • pd.Panel(data, items, major_axis, minor_axis, copy=False, dtype=None)
        • 四、Pandas 三大结构之——Series
          • 1.Series 的属性
          • 2.Series 的创建
    • pd.Series(data, index)
        • 五、基本数据操作
          • 1.数据的索引/访问
            • (1)直接索引(先列后行)
    • DataFrame数组[column][index]
    • DataFrame数组[start:stop]
            • (2)按标签索引(先行后列)
    • DataFrame数组.loc[index][column] DataFrame数组.loc[index, column]
            • (3)按下标索引(先行后列)
    • DataFrame数组.iloc[行下标/start:stop[, start:stop]]
            • (4)扩展:属性访问法
          • 2.数据的赋值
    • 访问需要修改的值 = 值
          • 3.排序
            • (1)对 DataFrame 进行排序
    • DataFrame数组.sort_values(by=, ascending=True)
    • DataFrame数组.sort_index()
            • (2)对 Series 进行排序
    • Series数组.sort_values(ascending=True)
    • Series数组.sort_index()
          • 4.算术运算与逻辑运算
            • (1)算术运算
    • 访问要进行运算的值 运算式
            • (2)逻辑运算
    • 直接访问元素的逻辑表达式 ⇨ 返回值:布尔数组
    • DataFrame/Series数组[布尔数组]
    • DataFrame/Series数组[布尔数组] = 值
    • DataFrame/Series数组.query("列索引属性的逻辑表达式")
    • DataFrame/Series数组[列索引].isin(values)
            • (3)统计运算
    • DataFrame/Series数组.describe()
            • (4)自定义运算
    • DataFrame/Series数组.apply(func[, axis=0])
          • 5.Pandas 绘图
    • DataFrame/Series数组.plot(x=?, y=?, kind=?)
        • 六、文件的读取与存储据
          • 1.CSV 文件的读写
    • pd.read_csv(filepath_or_buffer, usecols=[ ], names=[ ])
    • DataFrame/Series数组.to_csv(...)
          • 2.HDF5 文件的读写
    • pd.read_hdf(...)
    • DataFrame/Series数组.to_hdf(...)
          • 3.JSON 文件的读写
    • pd.read_json(...)
    • DataFrame/Series数组.to_json(...)


一、Pandas 简介

  • Pandas是什么?

PandasNumpy 为基础,借力 Numpy 模块在计算方面性能高的优势;其次,Pandas 基于 Matplotlib,能够简便的画图;Pandas 还具有独特的数据结构

  • 为什么使用 Pandas?

Pandas 具有便捷的数据处理能力,例如上一节 三、Python数据挖掘(Numpy库)中我们知道了,通过 Numpygenfromtxt() 函数读取数据文件中的字符串时,会出现 nan 的情况,但 Pandas 解决了这些问题,具有便捷的数据处理能力,读取文件方便,并且封装了 MatplotlibNumpy 的画图和计算


二、Pandas 三大结构之——DataFrame

对于 Numpy 中的 ndarray,它只储存数据,但不包含数据的意义,而 DataFrame 的结构上,既有行索引,又有列索引二维数组

可以类比于 SQL 中的一张关系表:一般 DataFrame 中行索引是指不同的事物,而列索引是指事物的属性(重要

Pandas 一般会和 Numpy 配合着来使用

导入模块

import pandas as pd
1.DataFrame 的创建

pd.DataFrame(data, index, columns, dtype=None, copy=False)

返回 二维数组dataDataFrame 结构
index 行索引语句,数组
columns 列索引语句,数组
只返回新数组,不改变原数组

例:
四、Python数据挖掘(Pandas库)_第1张图片
还可以通过传入字典来定义 DataFrame

pd.DataFrame(dict)

以字典的方式创建 DataFrame 数组
字典 key值 作为列索引

例:
四、Python数据挖掘(Pandas库)_第2张图片

Pandas 中的特殊索引——时间序列

pd.date_range(start=, end=, periods=, freq=, closed=None)

生成一个固定间隔时间的时间序列,可以用作 DataFrame 的索引
start= 开始日期,格式为:“2021-01-01”(不含时间)或 “2021-01-01 00:00:00”(含时间)
end= 结束日期,格式和 start= 一致
periods= 生成的时间序列的个数
freq= 频率,即时间间隔
closed= 把原输出结果输出为开/闭区间:
“closed=left” 表示输出区间为左闭右开
“closed=right” 表示输出区间为左开右闭

freq 频率 含义
D 一天
W 一周
W-SUN 一周,以星期天为起始,等同于"W"
W-MON 一周,以星期一为起始
W-TUE 一周,以星期二为起始
W-WED 一周,以星期三为起始
W-THU 一周,以星期四为起始
W-FRI 一周,以星期五为起始
W-SAT 一周,以星期六为起始
M 一个月,以月结束为界,如:“2018-11-30”, “2018-12-31”
MS 一个月,以月起始为界,如:“2021-01-01”, “2021-02-01”
S 一秒
T/min 一分钟
H 一个小时
A/Y 一年,以年结束为界,如:“2020-12-31”

更详细的内容,可参考下述文章:

  • 【pandas】 之 pandas.date_range 函数
  • 此外,还可以指定数值,如:5D 表示5天;3H 表示三个小时

例:
四、Python数据挖掘(Pandas库)_第3张图片
专门处理时间序列的函数

new_ = pd.to_datetime(datetime_list)

专门处理时间序列的函数,传入一个时间序列的列表,返回一个新的对象
datetime_list 时间序列列表

新对象的属性 含义
month 时间序列列表的月份列表
year 时间序列列表的年份列表
weekday 时间序列列表的星期列表
day 时间序列列表的日份列表

例:
四、Python数据挖掘(Pandas库)_第4张图片
可以直接根据日期返回星期

2.DataFrame 的属性
属性 含义
shape 形状
index 行索引
columns 列索引
values 表格内容-值

例:
四、Python数据挖掘(Pandas库)_第5张图片
四、Python数据挖掘(Pandas库)_第6张图片
在这里插入图片描述

3.DataFrame 重设索引

由于这些属性都是由数组构成,因此也可以进行一些访问操作

访问行索引

DataFrame数组.index[下标/start:stop]

访问行索引,缺省时访问所有行索引

:DataFrame 规定,不能直接通过 DataFrame数组.index[下标] = 值 单独修改某一行索引,只能整体修改

例:
四、Python数据挖掘(Pandas库)_第7张图片
访问列索引

DataFrame数组.columns[下标/start:stop]

访问列索引,缺省时访问所有列索引

:DataFrame 规定,不能直接通过 DataFrame数组.columns[下标] = 值 单独修改某一列索引,只能整体修改

例:
四、Python数据挖掘(Pandas库)_第8张图片
重设行索引

new_ = DataFrame数组.reset_index(drop=False)

DataFrame 将生成新的数字顺序的行索引
drop= 决定是否删除原索引,如果 drop=False,则不删除原索引,会把原行索引加到第一列中
只返回新数组 new_ ,不改变原数组

例:
四、Python数据挖掘(Pandas库)_第9张图片
以某列值设置为新的索引

new_ = DataFrame数组.set_index(keys, drop=True)

以某列的值设置为新的索引,key为某列的索引
keys 索引,可以设置多个索引
drop 决定是否删除作为索引引用后的该列:
drop=Fales 当设置了某列的值为新的索引后,保留这一列
drop=True 当设置了某列的值为新的索引后,不保留这一列,即 列数-1
只返回新数组 new_ ,不改变原数组

  • 以某一列的值作为新的索引,可以类比于 SQL主码,规定主码索引
  • 当设置多列作为索引时,可以类比于 SQL主码,主码可以由多个属性组成

例:把 “name” 作为新的行索引
四、Python数据挖掘(Pandas库)_第10张图片
例:设置多个行索引
四、Python数据挖掘(Pandas库)_第11张图片

4.其他常用方法

DataFrame数组.T

同样可以实现行和列的转置

DataFrame数组.head([num])

返回 DataFrame 数组前 num 行的内容
num 可以指定行数,默认为5行

DataFrame数组.tail([num])

返回 DataFrame 数组后 num 行的内容
num 可以指定行数,默认为5行

  • 后面两个方法一般用于结构的查看

访问某一行整行、某一整列或部分数据

DataFrame数组.iloc[行下标/start:stop[, start:stop]]

用于访问 DataFrrame 中所选的数据
行下标/start:stop 可以是指 行下标 所索引的行,也可以是某些行 [start:stop)
[start:stop) 列的范围,缺省时为所有列,这个不能是下标,但是可以通过如:[0:1] 的方式来单独访问某一列

后面会作更详细的介绍

例:
四、Python数据挖掘(Pandas库)_第12张图片


三、Pandas 三大结构之——Panel

MultiIndex 与 Panel

1.MultiIndex

MultiIndex 就是多层或分层索引对象,简单来说,在 DataFrame 具有多列行索引时, MultiIndex 就是多列行索引对象

例:
四、Python数据挖掘(Pandas库)_第13张图片

  • 索引的名字分别是 namesex

例:通过 index.索引的名字 可以访问指定索引

DataFrame数组.index.levels

显示行索引的内容

四、Python数据挖掘(Pandas库)_第14张图片

2.Panel

Panel 是用于存储三维数组的结构,其大致结构类似于 DataFrame

通常会把 Pnael 当作 DataFrame(数据帧) 的容器

pd.Panel(data, items, major_axis, minor_axis, copy=False, dtype=None)

返回 三维数组dataPanel 结构
data 三维数组
items - axis 0 每个项目对应于内部包含的数据帧(DataFrame)
major_axis - axis 1 它是每个数据帧(DataFrame)的行索引
minor_axis - axis 2 它是每个数据帧(DataFrame)的
只返回新数组 new_ ,不改变原数组

  • Panel 了解即可,Panel 从版本0.20.0开始弃用:推荐的用于表示3D数据的方法是 DataFrame 上的 MultiIndex 方法

四、Pandas 三大结构之——Series

Series 可以是 DataFrame 中的某一行,视为一维数组

它包含 索引index (0, 1, 2, 3…)值value 属性,这里的 index 指的是 Series的列索引——即一维数组的索引,而不是 DataFrame 的行索引
四、Python数据挖掘(Pandas库)_第15张图片
可以把 DataFrame 理解为 Series 的容器

1.Series 的属性
属性 含义
index 索引
values
2.Series 的创建

pd.Series(data, index)

返回 一维数组dataSeries 结构
data 一维数组
index 索引语句,数组

例:

直接创建
四、Python数据挖掘(Pandas库)_第16张图片
通过 DataFrame 创建
四、Python数据挖掘(Pandas库)_第17张图片

  • 会沿用原 DataFrame 的列索引作为 Series 的索引

通过字典创建
四、Python数据挖掘(Pandas库)_第18张图片


五、基本数据操作

1.数据的索引/访问
(1)直接索引(先列后行)

DataFrame数组[column][index]

通过 列和行 的索引访问 DataFrame 中的值
column 列索引,可以是一个数组
index 行索引,可以是一个数组,可以缺省
注:当 column 是一个数组时,index 不能指定任何值重要
注:[ ][ ] 是先列后行,不是先行后列

DataFrame数组[start:stop]

读取下标在区间 [start, stop) 内的无法指定列

例:

索引到某一值
四、Python数据挖掘(Pandas库)_第19张图片
访问整列数据
四、Python数据挖掘(Pandas库)_第20张图片
通过数组访问某些组合的数据
四、Python数据挖掘(Pandas库)_第21张图片

  • :上述情况中 column 是数组,index 不能指定任何值
    四、Python数据挖掘(Pandas库)_第22张图片
(2)按标签索引(先行后列)

DataFrame数组.loc[index][column]
DataFrame数组.loc[index, column]

通过 行和列 的索引访问 DataFrame 中的值,上述两种方法效果一样,都可以
index 行索引,可以是一个数组
column 列索引,可以是一个数组
loc() 不会受到直接访问那样的限制

例:

索引到某一值
四、Python数据挖掘(Pandas库)_第23张图片
通过数组访问部分值
四、Python数据挖掘(Pandas库)_第24张图片

  • 可以配合 DataFrame数组.index[ ]DataFrame数组.columns[ ] 使用,不过没必要这样用,可以直接使用 DataFrame数组.iloc[]
(3)按下标索引(先行后列)

DataFrame数组.iloc[行下标/start:stop[, start:stop]]

用于访问 DataFrrame 中所选的数据
行下标/start:stop 可以是指 行下标 所索引的行,也可以是某些行 start:stop
start:stop 列的范围,缺省时为所有列,这个不能是下标

例:

通过 start:stop 访问部分值
四、Python数据挖掘(Pandas库)_第25张图片

  • 可以配合 DataFrame数组.columns.get_indexer(columns) 来使用,该方法的作用是通过索引来获取索引所在位置的 列下标
  • 可以配合 DataFrame数组.index.get_indexer(index) 来使用,该方法的作用是通过索引来获取索引所在位置的 行下标

通过行下标访问部分值
在这里插入图片描述

(4)扩展:属性访问法

列索引以字母为开头时,列索引就是该 DataFrame/Series数组 的属性,可以用访问属性的方法来访问列

例:
四、Python数据挖掘(Pandas库)_第26张图片

2.数据的赋值

可以进行整体赋值,也可以单独赋值

访问需要修改的值 = 值

可以实现整体赋值或单独赋值

例:
四、Python数据挖掘(Pandas库)_第27张图片
:这个方法还可以为 DataFrame/Series数组 增加新的行或列

例:
四、Python数据挖掘(Pandas库)_第28张图片

  • 此时访问的索引是不存在的索引即可
3.排序
(1)对 DataFrame 进行排序

排序有两种形式,一种是根据内容进行排序,一种是根据行索引进行排序

DataFrame数组.sort_values(by=, ascending=True)

取单个列或多个列,根据这些列的内容进行排序
by 可以是某个列的索引,也可以是多个列的索引,以索引选取的列作为排序依据,如:by=[“Chinese”, “Math”],则优先根据 Chinese 索引进行排序,若 Chinese 索引值有相等项时,再根据 Math 索引
ascending=False 降序排序
ascending=True 升序排序,默认
只返回新数组,不改变原数组

DataFrame数组.sort_index()

根据行索引进行排序
只返回新数组,不改变原数组

例:
四、Python数据挖掘(Pandas库)_第29张图片

(2)对 Series 进行排序

由于 Series 是一个一维数组,因此较简单

Series数组.sort_values(ascending=True)

根据 Series 数组内容进行排序
ascending=False 降序排序
ascending=True 升序排序,默认
只返回新数组,不改变原数组

Series数组.sort_index()

根据索引进行排序
只返回新数组,不改变原数组

4.算术运算与逻辑运算
(1)算术运算

直接进行运算

访问要进行运算的值 运算式

可以直接进行运算

例:
四、Python数据挖掘(Pandas库)_第30张图片
通过方法进行运算

运算方法 含义
DataFrame/Series数组.add(other) 加运算:DataFrame/Series数组元素 + other
DataFrame/Series数组.sub(other) 减运算:DataFrame/Series数组元素 - other
DataFrame/Series数组.mul(other) 乘运算:DataFrame/Series数组元素 * other
DataFrame/Series数组.div(other) 除运算:DataFrame/Series数组元素 / other
DataFrame/Series数组.mod(other) 除(取整)运算:DataFrame/Series数组元素 % other
DataFrame/Series数组.pow(other) 幂运算:DataFrame/Series数组元素 ** other

数组与数组/自身之间运算(形状相同时)

例:
四、Python数据挖掘(Pandas库)_第31张图片

  • :如果 other 是一个数组的话,还有一个默认属性:…(other[, axis=1])
  • 默认为 axis=1DataFrame/Series数组other 的对应位置进行运算,缺值的位置用 NaN 填充
  • axis=0,则 DataFrame/Series数组 会和 行列转置后的other进行运算
(2)逻辑运算

直接访问元素的逻辑表达式 ⇨ 返回值:布尔数组

布尔逻辑表达式 ⇨ 返回值:布尔数组
进行基本的逻辑运算,该表达式记为“布尔数组”(重要

例:
四、Python数据挖掘(Pandas库)_第32张图片
逻辑运算符

逻辑运算符 含义
> 大于
< 小于
!= 不等于
|
&
  • :出现报错时可能是优先级问题,使用 ( ) 表明优先级

例:
四、Python数据挖掘(Pandas库)_第33张图片

DataFrame/Series数组[布尔数组]

布尔索引,索引布尔数组中为 True 的元素,并返回这些元素所在行索引

DataFrame/Series数组[布尔数组] = 值

布尔数组中为 True 的行索引进行统一赋值

例:

DataFrame/Series数组[布尔数组]
四、Python数据挖掘(Pandas库)_第34张图片
DataFrame/Series数组[布尔数组] = 值
四、Python数据挖掘(Pandas库)_第35张图片

逻辑运算函数

列索引以字母为开头时,列索引就是该 DataFrame/Series数组 的属性

当索引以字母为开头时,才可以使用下面这个方法:

DataFrame/Series数组.query(“列索引属性的逻辑表达式”)

根据逻辑运算符访问符合逻辑表达式
可以代替 DataFrame/Series数组[布尔数组] 的作用

例:直接使用列索引——属性即可
四、Python数据挖掘(Pandas库)_第36张图片

DataFrame/Series数组[列索引].isin(values)

检验 DataFrame/Series数组[列索引] 列中对应的值是否为 values,当 DataFrame/Series数组[列索引] 中某个位置的 这个值等于values这个值在values中 时,则该值所在对应位置为 True,否则对应位置为 False
DataFrame/Series数组[列索引] 为索引出的某列的值
values 可以是一个,也可以是一个数组

例:检验 “2021-01-02” 列是否有 23
四、Python数据挖掘(Pandas库)_第37张图片
再把这些符合的行索引出来
四、Python数据挖掘(Pandas库)_第38张图片

(3)统计运算

DataFrame/Series数组.describe()

能够直接得出很多统计结果:countmeanstdminmax

例:
四、Python数据挖掘(Pandas库)_第39张图片

  • ?%分位数:指把一组数据从小到大进行排列后,前 ?% 的数小于或等于该数——分位数

统计运算方法

统计运算方法 含义
DataFrame/Series数组.sum([axis=0]) (默认按列)统计总和
DataFrame/Series数组.mean([axis=0]) (默认按列)统计平均值
DataFrame/Series数组.median([axis=0]) (默认按列)统计中值
DataFrame/Series数组.max([axis=0]) (默认按列)查找最大值
DataFrame/Series数组.min([axis=0]) (默认按列)查找最小值
DataFrame/Series数组.mode([axis=0]) (默认按列)统计众数
DataFrame/Series数组.abs([axis=0]) 显示所有值的绝对值
DataFrame/Series数组.std([axis=0]) (默认按列)统计标准差
DataFrame/Series数组.var([axis=0]) (默认按列)统计方差
DataFrame/Series数组.idxmax([axis=0]) (默认按列)找出最大值所在位置
DataFrame/Series数组.idxmin([axis=0]) (默认按列)找出最小值所在位置
  • :由于 DataFrame/Series数组 的列索引默认视为类似 SQL事物的属性,因此这些方法在设计时都是按列统计,因为按行统计(属性之间)没意义

例:
四、Python数据挖掘(Pandas库)_第40张图片
累计统计方法

累计统计方法 含义
DataFrame/Series数组cumsum() 前1/2/3/…/n个数逐个累加求和
DataFrame/Series数组cummax() 前1/2/3/…/n个数的最大值
DataFrame/Series数组cumin() 前1/2/3/…/n个数的最小值
DataFrame/Series数组cumprod() 前1/2/3/…/n个数逐个累计求积

例:求一支股票的总涨跌幅
四、Python数据挖掘(Pandas库)_第41张图片
还可以画图显示总涨跌幅
四、Python数据挖掘(Pandas库)_第42张图片

(4)自定义运算

DataFrame/Series数组.apply(func[, axis=0])

DataFrame/Series数组 (默认按列)执行自定义的运算
func 自定义的运算
axis=0 默认按列统计

例:定义一个对列的 最大值-最小值 的函数
四、Python数据挖掘(Pandas库)_第43张图片

  • lambda表达式x 指代的就是 stock1 对象
5.Pandas 绘图

DataFrame/Series数组.plot(x=?, y=?, kind=?)

绘制简单图
x=? 图表的x轴,用列索引指定,如:x="name"
y=? 图表的y轴,用列索引指定,如:y="score"
kind=? 图表的类型,如:kind=“scatter” 就是散点图

kind参数 含义
line 折线图
hist 直方图
scatter 散点图
bar 柱状图

例:
四、Python数据挖掘(Pandas库)_第44张图片


六、文件的读取与存储据

Format Type Data Description Reader Writer
text CSV read_csv to_csv
text JSON read_json to_json
text HTML read_html to_html
text Local clipboard read_cliipboard to_cliipboard
binary MS Excel read_excel to_excel
binary HDF5 Format read_hdf to_hdf
binary Feather Formal read_feather to_feather
binary Parquet Formal read_parquet to_parquet
binary Msgpack read_msgpack to_msgpack
binary Stata read_stata to_stata
binary SAS read_sas
binary Python Pickle Fomat read_pickle to_pickle
SQL SQL read_sql to_sql
SQL Google Big Query read_gbq to_gbq
  • text: .text文件
  • binary:二进制文件
  • SQL:数据库文件
  • :最常用的是CSVHDF5JSON 文件

下面介绍三种最常用的文件类型的读取与存储

1.CSV 文件的读写

读取

pd.read_csv(filepath_or_buffer, usecols=[ ], names=[ ])

读取 csv 文件
filepath_or_buffer 文件路径,带扩展名
usecols=[ ] 指定读取的列索引,列表形式
names=[ ] 当指定的 CSV 文件没有索引字段时,读取 CSV 文件时会默认把第一行数据作为列索引,这非常不好,这个时候需要自己添加字段,列表形式

例:打开当前目录下 stock_day 下的 stock_day.csv 文件,并获取 highlowopenclose

import pandas as pd

pd.read_csv("./stock_day/stock_day.csv", usecols=["high", "low", "open", "close"])

写入

DataFrame/Series数组.to_csv(…)

DataFrame/Series数组 内容读取到 csv 文件中,带扩展名
path_or_buf 文件路径,文件不存在时则创建新文件
columns=[ ] 指定写入的列索引,列表形式
mode= “w”:覆盖,“a”:追加
index=True 是否写入行索引,默认为 True
header=True 是否写入列索引,默认为 True

例:把 前10行openclose 列数据写入文件

import pandas as pd

data[:10].to_csv("test.csv", columns=["open", "close"])
2.HDF5 文件的读写

hdf5 是存储三维数据的文件,这里的键则是指定了不同的二维表

读取

pd.read_hdf(…)

读取 hdf5 文件
filepath_or_buffer 文件路径,带扩展名
key 读取的键
mode 打开文件的模式

写入

DataFrame/Series数组.to_hdf(…)

写入 hdf5 文件
filepath_or_buffer 文件路径,带扩展名
key 指定键——指定要读取这张二维表时的键
mode= “w”:覆盖,“a”:追加,默认为追加,即追加一个新的键的二维表

扩展

优先选择使用 HDF5 文件存储

  • 其速度最快,是 pandas 默认支持的
  • 支持压缩,使用的方法是 blosc,可以提高磁盘利用率,节省空间
  • HDF5 是跨平台的,可以潜移到 Hadoop
3.JSON 文件的读写

JSON 文件是以一行作为一个样本
四、Python数据挖掘(Pandas库)_第45张图片
读取

pd.read_json(…)

读取 json 文件
filepath_or_buffer 文件路径,带扩展名
orient=“records” 读取文件后的展示方式,一般为 “records”(默认)
lines=False是否按行读取 json 对象,默认不是按行读取,一般选择 lines=True 按行读取

写入

DataFrame/Series数组.to_json(…)

读取 json 文件
filepath_or_buffer 文件路径,带扩展名
orient= 读取文件后的展示方式,一般选择 orient=“records” 即可
lines=False是否按行写入 json 对象,默认不是按行写入,一般选择 lines=True 按行写入

你可能感兴趣的:(Python数据挖掘,数据挖掘)