关于Pandas数据分析

pandas的数据加载与预处理

数据清洗:洗掉脏数据

整理分析:字不如表

数据展现:表不如图

环境搭建

python+jupyter

anaconda

Jupyter Notebook

Jupyter Notebook可以在网页页面中直接编写代码和运行代码,

代码的运行结果也会直接在代码块下显示的程序。

整合所有的资源

交互性编程体验

零成本重现结果(云运行/在线运行)

运行方法

任意目录打开终端输入

jupyter-notebook

定义端口

jupyter-notebook -port 8899

更换目录

jupyter notebook -generate-config

数据加载与存储

常见格式存储

import pandas as pd

pd.read_excel() # 从exce1的.xls或.xlsx格式读取表格数据

pd.read_csv()#从csv文件读取数据

pd.read_table() # 从txt文件读取数据

pd.read_sq1( )#将sql查询的结果(使用SQLAlchemy) 读取为pandas的DataF rame

pd.read_html( )#读取网页中的表格数据

pd. read_json( )#从json字符串中读取数据

pd.read_xml#从xml文件中读取数据

................................................等等

格式转换

data=pd.read_excel(./1.xlsx)

data.to_csv(./1.csv)

pandas两大数据结构

Series:一维数据(列)

DataFrame:多维数据

常用函数

data. shape

#数据维度,看看数据多少行,多少列

data . head(3)

#检查头数据

data. info()

#查看数据基本信息

data. dtypes

#查看数据类型

data . describe( )

#查看数值数据统计信息

描述性统计分析

data'省份'. unique

#显示某列所有的唯一值

data'省份'.value_ counts()

#返回每个元素有多少个

data'收益(元) ' . idxmax()

#返回最大值所在索引

data .nlargest(3,'收益(元)')

#返回前几个大的元素值所在行

data. sort_ values (by='' ,ascending='')

#根据某一列进行排序

查看指定多行、列、行列

data. columns. tolist( )

data1:5

data\[' ip' ,' phone' ]

data.loc

data. iloc \[\]

方法名称 参数 说明 边界

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

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

缺失值检查与处理

缺失数据查看和修改

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

data.dropna() #删除缺失值

data.fillna() #填充缺失值

缺失数据高亮

#某网站会员收益表.xlsx

data.isna().sum().sum()

#检查全部缺失值总数

data.isnull().sum( )

#检查每列缺失值

#将缺失值进行高亮

(datadata.isnull().any(1) == True

style

.highlight_null(nu11_color='skyblue')

.set_table_attributes( 'style="font-size: 10px"'))

#填充固定值

datal = data.fillna(

data1

#向下填充

data2 = data. fillna(method='bfill')

data2

#均值填充

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

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

#大多数时候,我们是从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)

#时间序列的索引。和普通索引一样,调用.1ocrow, columns 进行索引

user1 = user .set_ index('create_time' )

user1.1oc'2022-05'

2022年5月 -2022年7月的数据

user1.1oc ' 2022-05': '2022-07'

user create time' .dt.month

重复值检查与处理

datadata.duplicated() #筛选重复值所在行

datadata.duplicated(\['姓名')] #筛选指定列.

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

数据修改与筛选

#修改列名

df . rename( columns={

'姓名':'中文名字',

'city' : ' birthday '

})

#修改素引所在行

df.set_ index( 'id',inplace=True )

df.reset index(inplace=True)

df.drop(' index' )

#修改索引名字

df.rename axis(' 自加素引')

#修改某一个值

df.iloc0,1='林1'

#替换指定的值

df.replace(3, 0, inplace=True )

df.replace(0,3, inplace=True)

df.replace('林永玲' ,3, inplace=True )

df.iloc0,1='林永玲'

df.head(10)

df.drop(1)#删除指定行

df.drop(dfdf\['收益(元)' >10000] . index)#删除条件行

df.drop(columns= '省份', inplace=True )#删除列

df.drop(df.columns\[6,7,8], axis=1, inplace=True )#删除列(按列号)

其它分析工具

OpenRefine

IBM i2

相关推荐
ycvv15 分钟前
手机启动失败后的数据提取评估:系统状态、加密条件与文件验收
服务器·数据库·智能手机
不恋水的雨22 分钟前
gbase中union all导致末尾多出空格的坑
数据库·sql·mysql
data analyse 45638 分钟前
埋点工具的埋点查询语言难学吗?
前端·数据分析
恋猫de小郭1 小时前
Shopify 回应为什么从 RN 回到原生,为什么不用 KMP ?
android·前端·flutter
quantdash_cc1 小时前
Python 获取实时行情后如何进行批量筛选?从全市场快照到策略候选池
开发语言·python·数据分析·量化交易·股票数据·quantdash
AI 算法大模型备案~当当1 小时前
各地备案数量怎么看:一份属地公告的认读与台账方法
java·数据库·人工智能
梦帮科技2 小时前
量子张量网络破局大模型:从矩阵乘积态 (MPS) 到张量列 (TT-SVD) 低秩收缩全推导
网络·数据结构·数据库·线性代数·矩阵·架构·模拟退火算法
曹牧2 小时前
PL/SQL Developer:导出建表语句
数据库·sql
念念不忘 必有回响2 小时前
MySQL 事务与隔离级别完全指南
数据库·mysql
派小心.2 小时前
多端数据分析平台的用户画像能跨端合并吗?原理、难点与落地方法
数据挖掘·数据分析