python 语法盘点
rename 更改列名:
rename()函数(包含更改索引列列名的方法)
1 rename()可以更换列名和行名,必须写上columns或index,否则无效
Python|rename函数(列名重命名)
dataframe 的排序方法
describe() [25%] ## 在describe取25%和75%分位
drop.na() 参数解读
使用corr 计算相关系数
sns.lmplot() 画回归图:
https://www.cnblogs.com/peixu/p/13207161.html
数据清洗与格式转换
:
4.1.1 导入所需的基本工具包
有些默认参数可以按照自己的需求来设置
import pandas as pd
import numpy as np
# API需要升级或者遗弃了,不想看就设置一下warning
pd.options.mode.chained_assignment = None
# 经常用到head(),最多展示多少条数
pd.set_option('display.max_columns', 60)
import matplotlib.pyplot as plt
%matplotlib inline
#绘图全局的设置好了,画图字体大小
plt.rcParams['font.size'] = 24
from IPython.core.pylabtools import figsize
import seaborn as sns
sns.set(font_scale = 2)
from sklearn.model_selection import train_test_split
import warnings
warnings.filterwarnings("ignore")
- 4.1.2 数据清洗
# 加载数据
data = pd.read_csv('data/Energy_and_Water_Data_Disclosure.csv')
# 展示前3行
data.head(3)
4.1.3 数据类型与缺失值
data.info() # 可以快速让我们知道数据类型与缺失值
**
缺失值处理模板
**
# 缺失值Not Available转换为np.nan
#replace():描述Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),
data = data.replace({
'Not Available':np.nan})
data.head(3)
kBtu/ft²等本应该是float类型,在这里是object类型,所以要转换一下 为什么会这样呢,就是因为之前该列有not availale 就会变成object类型,所以我们在前面已经将缺失值转换为 “np.nan”
#kBtu/ft²等本应该是float类型,在这里是object类型,所以要转换一下 ,以ft²、kBtu、Metric Tons CO2e等为结尾的astype一下float
for col in list(data.columns):
if('ft²' in col or 'kBtu' in col or 'Metric Tons CO2e' in col or 'kWh' in
col or 'therms' in col or 'gal' in col or 'Score' in col ):
data[col] = data[col].astype(float)
描述统计:只能显示数值型的数据
# 每列中只能展示数值型的count、mean、sdt等等,object不会展示
data.describe()
缺失值通用模板
看一下每列的缺失值比例,
估计大家有很多种方法可以做,可以给大家提供一个函数,聪明的同学把他当做自己的工具吧,以后你会常用到的。
定义一个函数,传进来一个DataFrame:
## 缺失值的模板,通用的
# 定义一个函数,传进来一个DataFrame
def missing_value_table(df):
# python的pandas库中有一个十分便利的isnull()函数,它可以用来判断缺失值,把每列的缺失值算一下总和
mis_val = df.isnull().sum()
# 100相当于%,每列的缺失值的总和
mis_val_precent = 100 * mis_val /len(df)
# 每列缺失值的个数 、 每列缺失值的占比做成表
mis_val_table = pd.concat( [ mis_val,mis_val_precent ] ,axis= 1)
# 重命名指定列的名称 需要写清楚是indexs 还是columns.
mis_val_table_ren_columns = mis_val_table.rename(
columns = {
0 : 'Missing Values', 1 : '% of Total Values' })
## ascending=False : 降序排列列,默认是升序
#非空部分 根据 缺失概率 逆序排列
# # 因为第1列缺失值很大,ascending=False代表降序
#iloc[:,1] != 0的意思是对于下面的表中的第2列(缺失的占比)进行降序,从大到小
mis_val_table_ren_columns =mis_val_table_ren_columns[
mis_val_table_ren_columns .iloc[:,1] != 0 ].sort_values(by = '% of Total Values',ascending = False).round(1)
# mis_val_table_ren_columns = mis_val_table_ren_columns[
# mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
# '% of Total Values', ascending=False).round(1)
# 打印所有列的个数 、 缺失了多少列