一. 六大数据类型:
number:数字(其中还有整型(int),浮点型(float),布尔型(bool,这玩意不会用)三种数值类型)
string:字符串
list:列表
tuple:元组
dictionary:字典
set:集合
相互转化:数据类型()就可以转化为你想要的类型
比如:int(a)就将a转化为整数
二. 算数运算符
/:结果为浮点数
//:结果为向下取整
%:结果除后的余数
**:幂运算
三:逻辑运算符
and:“与”运算符,和的意思(与c中的&的意思一样,但是有区别)
or:“或”运算符
not:“非”运算符,意思相反,如果为真就假,如果为假就为真
四:判断语句
if 判断条件:(记得判断条件后有冒号,与c中不一样)
语句
else:(同样有冒号)
语句
当然:python中没有switch语句。
五:循环语句
1. while:(记得是冒号,不是c语言中的花括号)
循环体
2. for 循环变量 in 遍历对象(序列):
循环体
for 循环,从形式上可以分为俩种:
1.遍历对象
2.使用range函数控制循环次数
range函数: range(起始值,终止值,步长)
步长 :每次循环序列增长值,默认值为1,为1时可以省略
六:字符串
转义字符 | 输出为 |
、’ | ' |
\’‘ | ‘’ |
\t | 制表符 |
\n | 换行符 |
\\ | 倒斜杠 |
七: 字符串
1.字符串的计数包含空格和符号
2.索引从0开始
3.获取单个字符w时可以使用变量名[索引]
4.获取某个字符串使用变量名[起始索引:结束索引+1:间隔个数],起始索引默认为0,结束索引默认为最后,间隔个数默认为1,若为默认时可以省略
5.想要逆序输出字符串,只需要使用变量名[结束索引:开始索引-1:-1]
注意:python中所有的区间都是左开右闭
6.
in | not in |
判断某个字符或字符串是否在字符串中 | 判断某个字符或字符串是否不在字符串中 |
输出值可为布尔值,即True 和 False
7.字符串之间用“+”连接
8.
方法 | 使用方法 | 作用 |
---|---|---|
upper() | 字符串.upper() | 将字符串里的字符全部大写 |
lower() | 字符串.lower() | 将字符串里的字符全部小写 |
isupper() | 字符串.isupper() | 字符串中字符是否都是由大写字母组成 |
islower() | 字符串.islower() | 字符串中字符是否都是由小写字母组成 |
isdigit() | 字符串.isdigit() | 字符串中是否都是由数字组成 |
isnumeric() | 字符串.isnumeric() | 字符串中字符是否都是由数字字符组成 |
isalpha() | 字符串.isalpha() | 字符串中是否都是由字母组成,并且非空 |
isalnum() | 字符串.isalnum() | 字符串中是否都是由字母和数字组成,并且非空 |
isdecimal() | 字符串.isdecimal() | 字符串中是否都是由数字字符组成,并且非空 |
isspace() | 字符串.isspace() | 字符串中是否都是由空格、制表符和换行符组成,并且非空 |
istitle() | 字符串.istitle() | 字符串中是否以大写字母开头、后面都是小写字母的单词、数字或空格 |
find() | 字符串.find(字符,起始位置,结束位置) | 查找指定字符在字符串中的位置(索引)(找不到则返回-1) |
index() | 字符串.index(字符,起始位置,结束位置) | 查找指定字符在字符串中的位置(索引)(找不到会报错) |
count() | 字符串.count(字符) | 统计指定字符出现的次数 |
replace() | 字符串.replace(字符,新字符,替换次数) | 用于字符串的修改 |
split() | 字符串.split(分隔符,分割次数) | 拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。 |
join() | 分隔符.join(序列) | 返回一个用分隔符连接序列各个元素后的字符串(注:分隔符可以为空) |
title() | 字符串.title() | 字符串内的所有单词的首字母大写 |
capittalize() | 字符串.capittalize() | 字符串第一个字母大写 |
startswith() | 字符串1.startswith(字符串2) | 字符串2是否以字符串开始 |
endswith() | 字符串1.endswith(字符串2) | 字符串2是否以字符串结束 |
partition() | 字符串.partition(字符串中片段) | 以字符串中片段为分隔符分隔字符串 |
rjust() | 字符串.rjust(数字,'填充字符') | 右对齐字符串,左边填充上‘填充字符’,总字符长度为‘数字’ |
ljust() | 字符串.ljust(数字,'填充字符') | 左对齐字符串,右边填充上‘填充字符’,总字符长度为‘数字’ |
center() | 字符串.center(数字,'填充字符') | 字符串居中,两边填充上‘填充字符’,总字符长度为‘数字’ |
strip() | 字符串.strip(空格、制表符、换行符和字符串参数) | 删除字符串两边所选字符 |
rstrip() | 字符串.rstrip(空格、制表符、换行符和字符串参数) | 删除字符串右边所选字符 |
lstrip() | 字符串.lstrip(空格、制表符、换行符和字符串参数) | 删除字符串左边所选字符 |
八.列表
1.
列表操作 | 示范 |
---|---|
创建一个空列表 | a = [ ] |
访问列表中的某个元素 | a[索引] |
访问列表的最后一个元素 | a[-1] |
2.
操作 | 方法 | 描述 |
---|---|---|
增 | 列表.append(元素) | 在列表末尾添加一个元素 |
增 | 列表.extend(序列) | 在列表末尾追加一个序列 |
增 | 列表.insert(索引,元素) | 在列表对应的索引插入元素 |
删 | del 列表[索引] | 删除列表中对应索引的元素 |
删 | 列表.pop(索引) | 删除列表中对应索引的元素,并返回删除的元素,默认最后一个 |
删 | 列表.remove(元素) | 删除列表中对应元素的第一个匹配项 |
删 | 列表.clear() | 清空列表 |
改 | 列表[索引]=新元素 | 将列表对应索引的元素,修改为新元素 |
查 | 列表.index(元素) | 返回元素对应的索引 |
3.
len()函数可以取得列表的长度
4.用“+”连接两个列表,“ * ”实现列表的复制
5.sum()函数可以将列表中所有数相加
6.
sort():可以对列表进行永久排序
列表.sort(reverse=True/False)
sorted()可以对列表进行临时排序
sorted(列表名,reverse=True/False)
reverse=True 时,按降序排序。
reverse=False 时,按升序排序。
九.元组
1.
列表操作 | 示范 |
---|---|
创建一个空元组 | a =() |
创建包含一个元素的元组 | b =(元素,) |
创建元组 | c =(元素1,元素2,……) |
注意:包含一个元素的元组必须有逗号
2.
获取一个元素 | 元组序列[所有] |
---|---|
获取多个连接的元素 | 元组序列[开始索引,结束索引] |
3.
操作 | 作用 |
---|---|
index() | 从元组中找出某个对象第一个匹配项的下标位置。 |
count() | 统计某个元素在元组中出现的次数 |
len() | 计数元组元素的个数,并返回值 |
max() | 返回元组中元素的最大值 |
min() | 返回元组中元素的最小值 |
十.字典
1.
字典操作 | 代码示范 |
---|---|
创建空字典 | dict1 = {}/dict2 = dict() |
创建字典 | dict3 = { 键1 :值1 ,键2: 值2,……} |
2.
操作 | 代码示范 | 描述 |
---|---|---|
访问值 | 字典序列[键] | 访问已知键所对应的值 |
修改值 | 字典序列[键]=新值 | 修改已知键的值 |
添加键值对 | 字典序列[新键]=新值 | 添加新的键值对 |
删 | del 字典序列[键] | 删除字典中对应的键的键值对 |
删 | del 字典序列 | 删除字典 |
删 | 字典序列.clear() | 清空字典 |
查 | 字典序列.items() | 查找字典的所有的键值对 |
查 | 字典序列.keys() | 查找字典的所有的key(键) |
查 | 字典序列.values() | 查找字典的所有的value(值) |
十一.集合
操作 | 代码示范 | 描述 |
---|---|---|
增 | 集合序列.add(数据) | 添加一个数据 |
增 | 集合序列.update(序列数据) | 添加序列 |
删 | 集合序列.remove(数据) | 删除集合中指定的数据,如果数据不存在就报错 |
删 | 集合序列.pop() | 随机删除集合中的某个数据 |
删 | 集合序列.discard(数据) | 删除集合中指定的数据,如果数据不存在不做任何操作 |
十二.函数
1.def 函数名 ():
函数语句
函数名()
2.参数
(1)位置参数
def 函数名(形参1,形参2):
函数体
函数名(实参1,实参2)
(2)默认参数
def 函数名(形参1=数据,…):
函数体
(3)不定长参数(*args)
def 函数名(*args):
函数体
函数名(实参1,实参2,实参3,……)
(4)不定长参数(kwargs)
def 函数名(kwargs):
函数体
3.
global | nonlocal |
---|---|
声明变量的作用域为全局作用域 | 数中的下划线关键字用来在函数中使用外层(非全局)变量 |
一.机械学习
一.常用工具如下:
工具 | 作用 |
---|---|
matplotlib | 画图工具 |
numpy | 表格处理工具 |
padas | 信息处理工具 |
二. matplotlib
1.安装
打开cmd,输入代码:pip install matplotlib
输入代码检查是否安装成功:pip list
2.导入库
import matplotlib.pyplot as plt
3.创建画布
plt.figure(figsize = (a,b),dip = )
figsize:图像长(a)和宽(b)
dpi:清晰度
4.绘制图像
plt.plot(x,y.color = ' ',linestyle = ' ',marker = ' ',linestyle = ' ',label = ' ')
x:横轴
y:纵轴
marker:标记风格
linestyle:线条格式
label:图例
(1)常用的color
颜色 | 说明 | 颜色 | 说明 |
---|---|---|---|
r | 红色 | g | 绿色 |
b | 蓝色 | w | 白色 |
c | 青色 | m | 洋红 |
y | 黄色 | k | 黑色 |
(2)标记风格
标记字符 | 说明 | 标记字符 | 说明 |
---|---|---|---|
'.' | 点标记 | ',' | 像素标记(极小点) |
'v' | 倒三角标记 | ’^‘ | 上三角标记 |
'>' | 右三角标记 | '<' | 左三角标记 |
'1' | 下花三角标记 | '2' | 上花三角标记 |
'3' | 左花三角标记 | '4' | 右花三角标记 |
'o' | 实心圈标记 | 's' | 实心方形标记 |
'p' | 实心五角标记 | '*' | 星形标记 |
'h' | 竖六边形标记 | 'H' | 横六边形标记 |
'+' | 十字标记 | 'x' | x标记 |
'D' | 菱形标记 | 'd' | 瘦菱形标记 |
(3)线条格式
样式 | 说明 |
---|---|
’-‘ | 实线 |
’--‘ | 虚线 |
’-.‘ | 点划线 |
':' | 点虚线 |
5.添加x,y刻度
plt.xticks(x,rotation=,fontsize=)
plt.tticks(y,retation=,fontsize=)
x:要显示的刻度值
y:要显示的刻度值
rotation:旋转角度
fontsize:字体大小
6.设置x,y标签和标题
plt.xlabel(,fontsize=)
plt.ylabel(,fontsize=)
plt.title(,fontsize=)
7.添加网格显示
plt.grid(Ture,linestyle=,alpha=)
alpha:透明度
8.设置图例
plt.legend(loc=)
loc:图例位置
loc位置表:
位置 | 描述 | 对应数字 |
---|---|---|
best | 最佳位置 | 0 |
upper right | 右上方 | 1 |
upper left | 左上方 | 2 |
lower left | 左下方 | 3 |
lower right | 右下方 | 4 |
right | 右边 | 5 |
center left | 中间左边 | 6 |
center right | 中间右边 | 7 |
lower center | 下方中间 | 8 |
upper center | 上方中间 | 9 |
center | 正中心 | 10 |
9.图像的保存
plt.savefig(path_or_buffer)
path_or_buffer:文件位置
10.图像显示
plt.show()
11.显示中文
plt.rcParams['font.sans-serif'] = ['SimHei+']
12.统计图
(1)折线图:
import matplotlib.pyplot as plt
import pandas as pd
file_path = r"D:\230702417 \1\数据集1.csv"
data = pd.read_csv(file_path, parse_dates=["Date"])
data["Death Rate"] = data["Deaths"] / data["Confirmed"]
plt.figure(figsize=(10, 5))
plt.plot(data["Date"], data["Death Rate"], color="orange", marker="o", label="每日死亡率")
plt.title("2020年1月22日至2020年7月27日病毒死亡率走势")
plt.xlabel("日期")
plt.ylabel("死亡率")
plt.legend()
plt.show()
plt.rcParams['font.sans-serif'] = ['SimHei']
2.饼图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = {'index': np.arange(1, 10001),
'count': np.random.randint(0, 10001, size=10000),
'class': np.random.choice([1, 2, 3, 4, 5], size=10000),
'normal_distribution': np.random.normal(0, 10000, 10000),
'0-1': np.random.rand(10000)}
df = pd.DataFrame(data)
df.to_csv(r"D:\230702417 \2_data.csv", index=False)
class_counts = df['class'].value_counts()#计算class出现的次数
plt.figure(figsize=(5, 5))
plt.pie(class_counts, labels='class', autopct='%1.1f%%', startangle=60)
plt.title('class_distribution')
plt.show()
3.柱状图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = {'index': np.arange(1, 10001),
'count': np.random.randint(0, 10001, size=10000),
'class': np.random.choice([1, 2, 3, 4, 5], size=10000),
'normal_distribution': np.random.normal(0, 10000, 10000),
'0-1': np.random.rand(10000)}
df = pd.DataFrame(data)
df.to_csv(r"D:\230702417 \2_data.csv", index=False)
class_count_sum = df.groupby('class')['count'].sum()#groupby可以允许你按照某列的值对数据进行分组
plt.figure(figsize=(10, 5))
plt.bar(class_count_sum.index, class_count_sum, color='orange')#索引作x轴,另外一个作y轴
plt.xlabel('Class')
plt.ylabel('Count sum')
plt.title('count sum of the class')
for i, v in enumerate(class_count_sum):#循环添加标签,从1开始,水平居中,垂直方式对齐
plt.text(i+1, v+50, str(v), ha='center', va='bottom')
plt.show()
4.直方图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = {'index': np.arange(1, 10001),
'count': np.random.randint(0, 10001, size=10000),
'class': np.random.choice([1, 2, 3, 4, 5], size=10000),
'normal_distribution': np.random.normal(0, 10000, 10000),
'0-1': np.random.rand(10000)}
df = pd.DataFrame(data)
df.to_csv(r"D:\230702417 \2_data.csv", index=False)
plt.figure(figsize=(10, 5))#图的宽度和长度
plt.hist(df['normal_distribution'], bins=100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('normal_distribution')
plt.show()
三.numpy
1.安装
打开cmd,输入代码
pip install numpy
2.检查是否成功
pip list
3.导入库
import numpy as np
4.创建ndarray
data = np.array()
5.基本方法
名称 | 作用 |
---|---|
data.shape | 查看数组的维度(以元组的形式输出) |
data.ndim | 查看数组维数 |
data.size | 查看数组中的元素数量 |
data.itemsize | 查看一个数组元素的长度 |
data.dtype | 查看数组元素的类型 |
6.创建数组时指定类型
名称 | 描述 | 简写 |
---|---|---|
np.bool | 用一个字节存储的布尔类型(Ture或False) | 'b' |
np.int8 | 一个字节大小,-128至127 | 'i' |
np.int16 | 整数,-32768至32767 | 'i2' |
np.int32 | 整数,-2^31^至2^31^-1 | 'i4' |
np.int64 | 整数,-2^63^至2^63^-1 | 'i8' |
np.uint8 | 无符号整数,0至255 | 'u' |
np.uint16 | 无符号整数,0至65535 | 'u2' |
np.uint32 | 无符号整数,0至2^32^-1 | 'u4' |
np.uint64 | 无符号整数,0至2^64^-1 | 'u8' |
np.float16 | 半精度浮点数,16位,正负号1位,指数5倍,精度10位 | 'f2' |
np.float32 | 半精度浮点数,32位,正负号1位,指数8倍,精度23位 | 'f4' |
np.float64 | 半精度浮点数,64位,正负号1位,指数11倍,精度52位 | 'f8' |
np.complex64 | 复数,分别用两个32位浮点数表示实部和虚部 | 'c8' |
np.complex128 | 复数,分别用两个64位浮点数表示实部和虚部 | 'c16' |
np.object_ | python对象 | 'o' |
np.string_ | 字符串 | 's' |
np.unicode_ | unicode类型 | 'U' |
7.生成只含0和1的数组
one = np.ones([index, columns]) #生成index行,columns列且所有元素都为1的数组
zero = np.zeros([index, columns]) #生成index行,columns列且所有元素都为0的数组
ones = np.ones_like(ndarray) #生成一个行数和列数都与ndarry相同的且所有元素均为1的组
zeros = np.zeros_like(ndarray) #生成一个行数和列数都与ndarry相同的且所有元素均为0的组
8.从现有的数组中生成
data1 = np.array(data)
data2 = np.asarray(data)
np.array和np.asarray
as:
>>>a = np.array([[1,2,3],[4,5,6]])
>array([[1, 2, 3],
[4, 5, 6]])
>>>a1 = np.array(a)
>>>a2 = np.asarray(a)
>>>a[0][0] = 100
>a1:array([[1,2,3],
[4,5,6]])
a2:array([[100,2,3],
[4,5,6]])
可以看到数组a1使用array进行复制,将a的原始数据拷贝过来,对于数组a中的元素改变,对数组a1的元素没有影响,数组a2使用asarray进行复制,对于数组a中的元素改变,数组a2的元素也跟着数组a中的元素改变而改变。
9.等差数组
(1)np.linspace(start, stop, num, endpoint) (这种是指定数量的,步长自动计算)
start:起始值
stop:结束值
num:等间隔样例数量,默认50
endpolint:序列中是否包含stop值,默认为true
(2)np.arange(start,stop,step,dtype) (这种是指定步长,数量自动计算)
step:步长,默认1
10.等比数组
np.logspace(start,stop,num) (生成以10的n次幂的数据)
num:要生成的等比数组数量,默认为50
四.生成随机数组
1.导入库
import random
2.正态分布
(1)np.random.randn(d0,d1,d2,……,dn)
功能:从标准正态分布中返回一个或多个样本值
(2)np.random.normal(loc = 0.0,scale = 1.0,size = None)
loc:float 此概率分布的均值(对应整个分布的中心)
scale:float 此概率分布的标准差(对应于分布的宽度,scale值越大越矮胖,scale值越小越瘦高) size:int or tuple of ints 输出的shape,默认为None,只输出一个值
(3)np.random.standard_normal(size = None)
从一个均匀分布中随机采样,生成一个整数或N维整数数组 取数范围:若high不为None时,取(low,high)之间的随机整数,否则取值[0,low)之间随机整数
3.数组去重
np.unique()
4.ndarrary运算
(1)np.logical_and(condition1,condition2)
condition:条件
当两个条件同时满足时返回Ture
(2)np.all()
所有条件都满足要求返回True,有任一个不满足返回False
(3)np.any()
任一个条件满足要求返回True
5.统计指标
方法 | 作用 |
---|---|
np.min(ndarray,axis) | 查询所有行或所有列的最小值 |
np.max(ndarray,axis) | 查询所有行或所有列的最大值 |
np.median(ndarray,axis) | 查询所有行或所有列的中位数 |
np.mean(ndarray,axis) | 查询所有行或所有列的平均值 |
np.std(ndarray,axis,dtype) | 查询所有行或所有列的标准差 |
np.var(ndarray,axis,dtype) | 查询所有行或所有列的方差 |
np.ardmax(ndarray) | 查询最大值的位置 |
np.ardmin(ndarray) | 查询最小值的位置 |
6.数组运算
ndarray +1:数组里每个元素 +1
ndarray /2:数组里每个元素 /2
ndarray *2:数组里每个元素 *2
7.矩阵乘法
方法 | 作用 |
---|---|
np.matmul | 矩阵与矩阵相乘(禁止出现矩阵与标量相乘) |
np.dot | 矩阵与矩阵和标量相乘皆可 |
五.pandas
1.
打开cmd,输入代码
pip install pandas
2.导入库
import pandas as pd
3.三种主要数据结构
数据结构 | 描述 |
---|---|
Series | 一维数据结构 |
DataFrame | 二维数据结构 |
MultiIndex | 三维数据结构 |
Panel | 三维数据结构(MultiIndex老版本) |
(1)
pd.Series(data = None,index = None,dtype = None)
data:传入的数据,可以是ndarray,list等
index:索引,必须是唯一的,且与数据的长度相等,如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引
dtype:数据的类型 可以通过字典键值对来实现
属性 | 作用 |
---|---|
series.index | 获取索引 |
series.values | 获取值 |
(2)
pd.DataFrame(data = None,index = None,columns = None)
index:行标签,如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引
columns:列标签,如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引
属性 | 作用 |
---|---|
dataframe.shape | 获取维度 |
dataframe.index | 获取行索引表 |
dataframe.columns | 获取列索引表 |
dataframe.values | 获取其中array的值 |
dataframe.T | 行列互换(转置) |
dataframe.head() | 默认获取前5行,其他行数自行添加 |
dataframe.tail() | 默认获取后5行,其他行数自行添加 |
dataframe.info | 获取每一列的非空元素个数 |
(2.1)修改行列索引
data.index = new_index
data.columns = new_columns
修改索引值不能单个修改,必须整体修改
(2.2)重设索引
dataframe.reset_index(drop = False)
drop:默认为False,不删除原来索引,如果为True,删除原来索引值
4.排序
(1)dataframe排序
dataframe.sort_values(by = ,ascending =)
by:指定排序参考的键
ascending:默认升序
ascending = False 降序
ascending = True 升序
(2)series排序
dataframe.sort_values(ascending = True)
进行值排序
series.sort_index()
进行索引排序
5.统计运算
dataframe.describe()
(1)统计函数:
函数 | 作用 |
---|---|
sum | 获取总和 |
mean | 获取平均值 |
median | 获取中位数 |
min | 获取最小值 |
max | 获取最大值 |
mode | 获取众数 |
abs | 获取绝对值 |
prod | 获取累积 |
std | 获取标准差 |
var | 获取方差 |
idxmax | 获取最大值索引 |
idxmin | 获取最小值索引 |
(2)累计统计
函数 | 作用 |
---|---|
cumsum | 计算1/2/3/……/n个数的和 |
cummax | 计算1/2/3/……/n个数的最大值 |
cummin | 计算1/2/3/……/n个数的最小值 |
cumprod | 计算1/2/3/……/n个数的积 |
(3)自定义运算
apply(func,axis=0)
func:自定义运算
axis=0默认是列,axis=1为行进行运算
6.pandas画图
1.dataframe.plot(kind='line')
kind:str,需要绘制图形的种类
图形种类
种类 | 描述 |
---|---|
line | 折线图 |
bar | 条形图(竖直条状) |
bath | 条形图(水平条状) |
hist | 直方图 |
pie | 饼图 |
scatter | 散点图 |
2.文件读取与存储
类 | 数据类型 | 读取文件 | 存储文件 |
---|---|---|---|
text | CSV | read_csv | to_csv |
text | JSON | read_json | to_json |
text | HTML | read_html | to_json |
text | Local clipboard | read_clipboard | to_clipboard |
binary | MS Excel | read_excel | to_excel |
binary | HDF5 Format | read_hdf | to_hdf |
binary | Feather Format | read_feather | to_feather |
binary | Parquet Format | read_parquet | to_parquet |
binary | Msgpack | read_msgpack | to_msgpack |
binary | Stata | read_stata | to_stata |
binary | SAS | read_sas | -- |
binary | Python Pickle Format | read_pickle | to_pickle |
SQL | SQL | read_sql | to_sql |
SQL | Google Big Query | read_gbp | to_gbp |
3.csv
(1)read_csv
pd.read_csv(filepath_or_buffer,sep = ',',usecols = None)
filepath_or_buffer:文件路径
sep:分隔符,默认用','隔开
usecols:指定读取的列名,列表形式
(2)to_csv
dataframe.to_csv(path_or_buffer=None,sep = ',',columns = None,header = True,index = True,mode = 'w',encoding = None)
path_or_buf:文件路径
sep:分隔符,默认用','隔开
columns:选择需要的列索引
header:是否写进列索引值
index:是否写进行索引值
mode:'w':重写,'a':追加
7.高级数据处理
1.判断数据中是否含NAN
方法 | 描述 |
---|---|
pd.isnull(dataframe) 或dataframe.isnull() | 有缺失值返回True,没有缺失值返回False |
pd.notnull(dataframe)或dataframe.isnull() | 没有缺失值返回True,有缺失值返回False |
2.删除存在缺失值的对象
dataframe.dropna(axis = 0)
3.替换缺失值
dataframe.fillna(value, inplace = True)
value:替换成的值
inplace:True则会修改原数据,False则不替换修改原数据,生成新的对象
4.合并
(1)pd.concat([data1, data2], axis = 1)
按照行或列进行合并,axis=0为扩展行,axis=1为扩展列
(2)pd.merge(left, right, how = 'inner', on = None)
可以指定按照两组数据的共同键值对合并或者左右各自合并
left : dataframe
ight :另一个dataframe
on :指定的共同键
how:按照什么方式连接
(3)方式
方式 | 作用 | 描述 |
---|---|---|
left | 左连接 | 左边加左右交集的部分 |
right | 右连接 | 右边加左右交集的部分 |
outer | 外连接 | 并集部分 |
inner | 内连接 | 交集部分 |