四、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 列索引语句,数组
只返回新数组,不改变原数组

例:

还可以通过传入字典来定义 DataFrame

pd.DataFrame(dict)

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

例:

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 表示三个小时

例:

专门处理时间序列的函数

new_ = pd.to_datetime(datetime_list)

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

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

例:

可以直接根据日期返回星期

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

例:


3.DataFrame 重设索引

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

访问行索引

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

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

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

例:

访问列索引

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

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

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

例:

重设行索引

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

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

例:

以某列值设置为新的索引

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

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

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

例:把 “name” 作为新的行索引

例:设置多个行索引

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] 的方式来单独访问某一列

后面会作更详细的介绍

例:


三、Pandas 三大结构之——Panel

MultiIndex 与 Panel

1.MultiIndex

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

例:

  • 索引的名字分别是 namesex

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

DataFrame数组.index.levels

显示行索引的内容

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 的行索引

可以把 DataFrame 理解为 Series 的容器

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

pd.Series(data, index)

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

例:

直接创建

通过 DataFrame 创建

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

通过字典创建


五、基本数据操作

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

DataFrame数组[column][index]

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

DataFrame数组[start:stop]

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

例:

索引到某一值

访问整列数据

通过数组访问某些组合的数据

  • :上述情况中 column 是数组,index 不能指定任何值
(2)按标签索引(先行后列)

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

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

例:

索引到某一值

通过数组访问部分值

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

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

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

例:

通过 start:stop 访问部分值

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

通过行下标访问部分值

(4)扩展:属性访问法

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

例:

2.数据的赋值

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

访问需要修改的值 = 值

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

例:

:这个方法还可以为 DataFrame/Series数组 增加新的行或列

例:

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

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

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

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

DataFrame数组.sort_index()

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

例:

(2)对 Series 进行排序

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

Series数组.sort_values(ascending=True)

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

Series数组.sort_index()

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

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

直接进行运算

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

可以直接进行运算

例:

通过方法进行运算

运算方法 含义
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

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

例:

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

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

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

例:

逻辑运算符

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

例:

DataFrame/Series数组[布尔数组]

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

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

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

例:

DataFrame/Series数组[布尔数组]

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

逻辑运算函数

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

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

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

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

例:直接使用列索引——属性即可

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

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

例:检验 “2021-01-02” 列是否有 23

再把这些符合的行索引出来

(3)统计运算

DataFrame/Series数组.describe()

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

例:

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

统计运算方法

统计运算方法 含义
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事物的属性,因此这些方法在设计时都是按列统计,因为按行统计(属性之间)没意义

例:

累计统计方法

累计统计方法 含义
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个数逐个累计求积

例:求一支股票的总涨跌幅

还可以画图显示总涨跌幅

(4)自定义运算

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

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

例:定义一个对列的 最大值-最小值 的函数

  • 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 柱状图

例:


六、文件的读取与存储据

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 pdpd.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 pddata[: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 文件是以一行作为一个样本

读取

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数据挖掘(Pandas库)相关推荐

  1. python dataframe 新列_Python第二十四课:Pandas库(四)

    Python第二十四课:Pandas库(四)点击上方"蓝字",关注我们. 不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱.学到至今,回过头,才晓得自 ...

  2. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库

    第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.cs ...

  3. Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略

    Py之Pandas:Python的pandas库简介.安装.使用方法详细攻略 目录 pandas库简介 pandas库安装 pandas库使用方法 1.函数使用方法 2.使用经验总结 3.绘图相关操作 ...

  4. 学习 Python 之 Pandas库

    学习 Python 之 Pandas库 Pandas库 什么是Pandas库? DataFrame 创建和存储 1. 使用DataFrame构造函数 (1). 使用列表创建 (2). 使用字典创建 ( ...

  5. Python中pandas库实现数据缺失值判断isnull()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中pandas库实现数据缺失值判断 isnull()函数 ...

  6. Python之Pandas库常用函数大全(含注释)

    前言:本博文摘抄自中国慕课大学上的课程<Python数据分析与展示>,推荐刚入门的同学去学习,这是非常好的入门视频. 继续一个新的库,Pandas库.Pandas库围绕Series类型和D ...

  7. python 利用pandas库实现 读写 .csv文件

    最近在处理ILSVRC12数据集,有一个需求就是将图片路径和标签写入.csv文件中,这里我们用到了pandas库,当然也有不用pandas库的方法,这里不再介绍,因为pandas处理起来是真的香啊 1 ...

  8. 如何最简单、通俗地理解Python的pandas库?

    pandas是一个Python软件包,提供快速.灵活和富有表现力的数据结构,旨在使处理 "关系型 "或 "标签型 "数据变得简单和直观 这个解释是比较官方的. ...

  9. 09 Python之Pandas库之数据处理与规整

    Pandas库之数据处理与规整 import numpy as np import pandas as pd import pandas_datareader.data as web import d ...

  10. 【python】pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

最新文章

  1. mysql增加字段默认位置_MySQL语句增加字段,修改字段名,修改类型,修改默认值
  2. Java String关于replaceall函数转义字符的一个小贴士
  3. ebp 函数堆栈esp_对于ESP、EBP寄存器的理解
  4. 用ARM DS-5进行android linux开发
  5. layui templet格式化_layui数据表格日期如何格式化成2012-12-30这样的?
  6. C语言-附加-按位翻转一个unsigned int 类型的数字
  7. cocos2D中scheduleOnce的陷阱
  8. 50行python代码自动生成文章_如何通过50行Python代码获取公众号全部文章
  9. BoltDB学习笔记
  10. codeforces竞赛1141题解
  11. 爱的杂篇--掉掉眼泪
  12. Python数据分析入门书籍推荐!!!强烈推荐,新手必看
  13. FSOS森林模拟优化模型学习笔记
  14. html渐变编织背景,css3编写浏览器背景渐变背景色
  15. Android应用分身的实现和解析
  16. linux用cat命令创建一个文件,用cat在命令行创建文件
  17. LY系列之约会大作战 (10分)
  18. Vmware ESXI 6.7升级版本
  19. 解决苹果手机里面的网页返回不刷新页面的问题
  20. 21年一级消防工程师备考实用技巧早知道!

热门文章

  1. System Verilog简要笔记
  2. Greasy Fork发布油猴脚本
  3. 1分钟链圈|腾讯区块链(天津)被责令更名;Casper更新可能导致社区再次分裂...
  4. IOS error:Images.xcassets: error: ERROR: Each TDDistiller instance can be distilled only one time!
  5. 2022深圳杯AC题思路模型分析
  6. CentOs7 安装绿色版Nginx并配置开机启动
  7. JPA设置表名和实体名,表字段与实体字段的对应
  8. 传奇3服务器配置文件,传奇3.0服务器的架设和设置详细介绍
  9. 微信公众平台开发最佳实践
  10. MySQL 重置 root 密码以及修改密码时报错password字段不存在