Python数据分析之Pandas的数据加载与预处理

一、数据分析

数据分析就是让看似杂乱无章的数据产生价值,通过数据的筛选、汇总等等操作将数据背后的信息集中和提炼出来,最终分析出一个结果或预测出事件的变化规律。

Python数据分析之Pandas的数据加载与预处理_第1张图片

二、数据清洗

数据加载与预览

1、去除/填充有缺失的数据

2、去除/修改格式错误或内容错误的数据

3、去除/修改逻辑错误的数据

4、去除不需要的数据

5、关联性验证

三、Pandas简介

Pandas 库是一个基于NumPy的免费、开源的第三方 Python 库,是 Python 数据分析必不可少的工具之一,它为 Python 数据分析提供了高性能,且易于使用的数据结构,即 Series 和 DataFrame。Pandas 自诞生后被应用于众多的领域,比如财务系统、管理系统、金融、统计学、社会科学等。 Pandas享有Python数据分析“三剑客之一”的盛名,已经成为 Python 数据分析的必备高级工具

Pandas 主要是用作提炼数据使用

Numpy 则提供强大的科学计算

Matplotlib 负责数据可视化的操作

四、Pandas基本使用

1、常见格式数据读取

pd.read_excel()  # 从excel的.xls或.xlsx格式读取表格数据
pd.read_csv()    # 从csv文件读取数据 
pd.read_table()  # 从txt文件读取数据
pd.read_sql()    # 将sql查询的结果(使用SQLAlchemy)读取为pandas的DataFrame
pd.read_html()   # 读取网页中的表格数据
pd.read_json()   # 从json字符串中读取数据
pd.read_xml      # 从xml文件中读取数据

Python数据分析之Pandas的数据加载与预处理_第2张图片

2、常用函数

data.shape       # 数据维度,看看数据多少行,多少列
data.head(3)     # 检查头数据
data.info()      # 查看数据基本信息
data.dtypes      # 查看数据类型
data.describe()  # 查看数值数据统计信息
 count:数量统计,此列共有多少有效值
   unipue:不同的值有多少个
   std:标准差
   min:最小值
   25%:四分之一分位数
   50%:二分之一分位数
   75%:四分之三分位数
   max:最大值
   mean:均值

Python数据分析之Pandas的数据加载与预处理_第3张图片

3、数据存储

df.to_csv() 	 	# 存储为csv文件
df.to_excel() 	 	# 存储为excel文件
df.to_html()  	 	# 存储为html文件
df.to_json()  	 	# 存储为json文件
df.to_sql() 	 	# 存储为sql文件

4、查看指定多行、列

data.columns.tolist()
data[1:5]
data[[’ip’,’phone’]]

Python数据分析之Pandas的数据加载与预处理_第4张图片

Python数据分析之Pandas的数据加载与预处理_第5张图片

5、查看指定数据

data.loc[row,columns]  基于标签索引选取数据 前闭后闭

data.iloc[row,columns] 基于整数索引选取数据 前闭后开

Python数据分析之Pandas的数据加载与预处理_第6张图片

6、缺失值检查与处理

data[data.isnull().values] # 查看缺失值

Python数据分析之Pandas的数据加载与预处理_第7张图片

data.dropna() # 删除缺失值

data.fillna() # 填充缺失值

7、缺失值检查处理

data.isna().sum().sum()  # 检查全部缺失值总数

data.isnull().sum()      # 检查每列缺失值

Python数据分析之Pandas的数据加载与预处理_第8张图片

# 将缺失值进行高亮 

(data[data.isnull().any(1) == True]
.style
.highlight_null(null_color='skyblue')
.set_table_attributes('style="font-size: 10px"'))

Python数据分析之Pandas的数据加载与预处理_第9张图片

data1 = data.fillna('*********') # 填充固定值

Python数据分析之Pandas的数据加载与预处理_第10张图片

data2 = data.fillna(method='bfill')  # 向下填充

# # 均值填充

data3 = data['收益(元)'].fillna(data['收益(元)'].mean())

data3.map(lambda cell: '%.2f' % cell)

8、异常值检查与处理

# 大多数时候,我们是从csv文件中导入的数据,此时Dataframe中对应的时间列是字符串或时间戳的形式
# type(user['create_time'][1])

# 运用pd.to_datetime(),可以将对应的列转换为Pandas中的datetime64类型,便于后期的处理
user['create_time'] = pd.to_datetime(user['create_time'],unit='s')
user['create_time'] = user['create_time'].map(lambda x : pd.to_datetime(x,unit='s'))
type(user['create_time'][1])

# 时间序列的索引。和普通索引一样,调用.loc[row,columns]进行索引
user1 = user.set_index('create_time')
user1.loc['2022-05']
# 2022年5月-2022年7月的数据
user1.loc['2022-05':'2022-07’]

user[‘create_time’].dt.month

9、重复值检查与处理

data[data.duplicated()] # 筛选重复值所在行

Python数据分析之Pandas的数据加载与预处理_第11张图片

data[data.duplicated([‘姓名’])] # 筛选指定列存在重复项所在的行

Python数据分析之Pandas的数据加载与预处理_第12张图片

data.drop_duplicates() # 删除重复值所在行

10、数据修改

修改列名rename()

df.rename(columns={'姓名':'名字','性别':'男女'})

修改行索引set_index()

df.set_index('id',inplace=True) #指定字段,成为索引

Python数据分析之Pandas的数据加载与预处理_第13张图片

df.reset_index(inplace=True) #重置索引

Python数据分析之Pandas的数据加载与预处理_第14张图片

df.drop(['index'])

修改索引名rename_axis()

# 修改索引名字 df.rename_axis('自加索引')

Python数据分析之Pandas的数据加载与预处理_第15张图片

修改某一个值:df.iloc[0,1]='李三'

Python数据分析之Pandas的数据加载与预处理_第16张图片

替换指定的值:

替换值(单值)replace()

将5000.0替换为4444:

Python数据分析之Pandas的数据加载与预处理_第17张图片

替换值(多值)replace()

11、数据删除

1、删除指定行

df.drop(1)

2、删除条件行

删除id=5099.0的行

Python数据分析之Pandas的数据加载与预处理_第18张图片

3、删除列

删除性别这一字段所在的列

Python数据分析之Pandas的数据加载与预处理_第19张图片

4、按列号删除列

Python数据分析之Pandas的数据加载与预处理_第20张图片

你可能感兴趣的:(python,数据分析,pandas)