Numpy 总结
Np.array() 创建矩阵 例
Np.array([1,2,3]) 输出结果为 [1 , 2 , 3]
np.array([[1, 2], [3, 4]])
输出结果
[[1 2]
[3 4]]
Reshape 修改数组 例如:
a = np.arange(8)
[0 1 2 3 4 5 6 7]
b = a.reshape(4,2)
[[0 1]
[2 3]
[4 5]
[6 7]]
Linspace 创建一个0-1浮点数的数组
Logspace 创建一个 1-100 的浮点数的数组
例: np.linspace(0,1,10) 从0-1范围 十个浮点数
np.logspace(0,2,20) 表示从10^0 到 10^2=100 范围内 生成 20个浮点数
生成随机数组
Np.random.rand(10) 生成0-1 的10个浮点数
数组函数:
Sin 计算数组中所有数字的sin值
Np.all 判断数组中元素是否都满足条件
Np.any判断数组中元素至少有一个满足条件
np.ceil(arr) #对元素向上取整
np.floor(arr) #对元素进行向下取整
np.array_equal(arr1,arr2)#判断两个数组是否完全相同
np.cumprod(arr)#计算累积
np.std(arr)#计算数组标准差
np.logical_and(arr>=4 , arr<=7) #判断是否在 4和7之间
np.exp(arr) #e的幂次方 科学计数法
np.genfromtxt('data.csv',delimiter=',',skip_header=1)读取csv文件 跳过第一行
np.argmax(arr) #数组中最大元素的索引
np.nonzero(arr)[0][0] #找到数组中第一个非零元素的索引
Matplotlib总结
Plot 绘制折线图
Scatter 绘制散点图
Bar 用于绘制垂直的条形图和水平的条形图
Barh 绘制横向的条形图
fill_between 绘制面积图
Hist 绘制直方图
Pie 绘制饼图
Subplots 绘制子图
设置 x,y两个数组 使用绘图函数 将x,y传入
plot(x, y, 'bo')
fontproperties = 'SimHei' 设置字体
plt.legend(prop={'family':'SimHei'}) 设置图例字体
'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色
'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。
'.' 点标记,',' 像素标记(极小点),'o' 实心圈标记,'v' 倒三角标记,'^' 上三角标记,'>' 右 三角标记,'<' 左三角标记
Ms 设置标记大小
Mfc 设置标记内部颜色
Mec 设置边框颜色
使用函数 xlabel 设置x轴标签
Ylabel 设置y轴标签
Title 设置图像标题
plt.xlabel("x 轴", fontproperties='SimHei', loc="left") fontproperties设置字体
Loc 设置文字位置
函数 grid 设置网格线
plt.grid(axis='x') # 设置 平行于y轴的网格线
plt.legend() 设置图例
Pandas 总结
读取文件 read_csv 读取csv 格式文件
将字典转化为 DataFrame
dict = {'name': nme, 'site': st, 'age': ag}
df = pd.DataFrame(dict)
Head()默认读取前5行
Tail() 默认读取后5行
Info 返回一些基本信息
数据清洗
Isnull() 判断各个单元格是否为空
Dropna() 删除空数据的行 默认 返回一个新的DataFrame 不修改源数据
Dropna(inplace = True) 修改源数据
dropna(subset=[列名], inplace = True) 删除指定列中值为空的行
Fillna(12345) 将空值 替换为12345
df['PID'].fillna(12345, inplace = True) 将12345替换pid列为空值的单元格
x = df["ST_NUM"].mean()
df["ST_NUM"].fillna(x, inplace = True) 计算列的平均值 替换空值
Median 计算中位数
Mode 计算众数
将日期格式错误的值修改为正确的
Loc 通过标签 替换错误数据
例 loc[2,’age’] = 30 2代表行索引 age代表列
Iloc 通过位置
例:iloc[行索引,列索引]
Drop_duplicates() 删除重复值
Replace(‘新值’,’旧值’)
Rename 修改列名
例:
df = df.rename(columns={'name': '姓名', 'age': '年龄', 'gender': '性别', 'score': '成绩'})
排序
.sort_values(列名,ascending=True/False) ascending不可少
# 选择成绩大于等于90的行,并只保留姓名和成绩两列
df = df.loc[df['成绩'] >= 90, ['姓名', '成绩']]
Describe() 每列的基本统计信息
根据条件选择行
例:df[df[‘Age’]>=30]
对数据进行排序
例:df.sort_values(by=’Age’,ascending=False)
by是排序的字段
ascending=False 表示降序排序
在df数据中新增一列
例:df[‘新增列名’] = [新增数据(数量对应条数)]
分组计算
例:df.groupby('Gender'<分组字段>)['Age'<要计算的字段>].mean()<对性别分组求每个性别的平均年龄>
使用平均值替换缺失值
例:df['Age'].fillna(df['Age'].mean(), inplace=True) <将年龄中的缺失值替换为年龄的平均值>
更改列明
df.rename(columns={'Gender': 'Sex'}, inplace=True)
Inplace=True 表示更改源数据
合并两个df
例:pd.merge(df1,df2,on=’<两个df中相同的列>’)
数据读取
pd.read_csv(文件地址, usecols=['Name', 'Position'])
文件内容为:
Name,Position
Alice,Manager
Bob,Data Analyst
Charlie,Engineer
输出结果:
Name Position
0 Alice Manager
1 Bob Data Analyst
2 Charlie Engineer
透视表
merged_df.pivot_table(values='Salary', index='Position', aggfunc='mean')
values='Salary' 表示要使用的值的列名
index='Position' 表示要使用的列名 作为索引
aggfunc='mean' 表示要进行什么操作
数据去重操作
merged_df.drop_duplicates() 取出df中的重复数据的方法
字符串操作
例:df[‘列名’] = df[‘列名’].str.upper() .将某一列的数据转化为大写
.str.upper()是一个字符串方法 将字符串中的字母都转化为大写
数据替换
例 df[‘列名’].replace({‘原数据’:’更改后的数据’,‘原数据’:’更改后的数据’,........})
时间处理
Pd.to_datetime(df[‘时间列名’]) 将日期字符串转换为日期格式
df_dates['Join_Date'].dt.year .dt.year 提取日期中的年份
从df中选择某一行数据
df.iloc[行数] 行数从0开始
对数据进行标记
np.where(df['Salary'] > 55000, 'High', 'Normal')
判断df中的某一列是否满足条件 满足返回第一个 不满足返回第二个
对数据进行多行排序
例:df.sort_values(by=[字段1, '字段2'], ascending=[False, True])
首先按照字段1进行 降序排序(False)
当字段1的值相同时 对字段2进行升序排序
累计计算
duplicate_removed.groupby('Name')['Salary'].cumsum()
Cumsum 进行累计计算的方法