数据分析(3)

数据分析(3)

索引和数据筛选

在我们导入数据将其存储在data变量中后,接下来就要开始对其进行操作了,要对指定的数据进行操作,首先要在一堆数据中确定它,因此需要索引

复制代码
import pandas as pd
data = pd.read_csv("path")

列索引

方法:

访问一列数据

复制代码
data["columns"]

访问多列数据:

复制代码
data[["columns_1","colulmns_2]]

.loc属性

访问DataFrame对象中的.loc属性可以按照index访问行数据

内容比较简单,学会怎么调用即可,在此直接用代码说明

复制代码
data.loc[index] #访问某一行
data.loc[起点index的值:结束index的值] #访问连续的某几行,左闭右闭
data.loc[[index1,index2,index3,...]] #访问不连续的某几行
data.loc[index,columns] #访问单个元素
data.loc[index(切片或列表),columns(切片或列表)] #访问多个元素

.iloc属性

访问DataFrame对象中的.iloc属性可以按照行位置访问行数据

基本与.loc相同,只需注意,1.loc是按照index访问,iloc是按照行位置访问

2.在访问连续的几行时,loc是左闭右闭iloc是左闭右开

复制代码
.iloc[index] #访问某一行
.iloc[index0(起始),index1(结束)] #访问连续的某几行,左闭右开
.iloc[[index1,index2,index3...]] #访问不连续的某几行
.iloc[index,columns] #访问单个元素
data.iloc[index(切片或列表),columns(切片或列表)] #访问多个元素

布尔索引

1.有一个判断条件

条件表达式:

pandas通过条件表达式得到一个布尔型Series,再通过这个Series来索引数据

常见的比较运算符:==、>、<、>=、<=、!=

常见的逻辑运算符:&、|、~

复制代码
data[data["cutdown_price]>0]
2.有两个判断条件

过程等同于先进行第一个判断,然后再此结果的基础上再进行第二个判断,依次类推

复制代码
data[(data["cutdown_price"]>0) & (data["post_fee"]>0)]

格式转换和时间类型

时间类型

datetime 具体时间点,比如2024/04/20 0:03

period 时间区间,比如2024年三月十八日一整天

timedelta 时间间隔,比如3days,2 months

字符串转时间

pd.to_datetime()函数,将参数中这一列的数据,转化成时间格式

复制代码
df['creat_time'] = pd.to_datetime(df['creat_time'])

时间转字符串

.strftime()函数将某一列时间类型的数据,转换为字符串类型,并变成"年-月"的格式

dt.后缀 datetime类型的数据要先通过后缀.dt转化

格式化输出 %Y代表时间的年,%m代表时间的月,%d代表时间的日。时间以外的其他的内容可以任意编辑。

复制代码
df['pay_time'] = df['pay_time'].dt.strftime('%Y-%m')

格式转换函数

astype()函数,里面的参数是需要转化成为的数据类型。可以实现字符串、整型、浮点型、布尔型数据的相互转换。

1.整型、浮点型数据,可以直接使用.astype(str)函数。将数据类型转化为字符串类型。

2.字符串数据,当数据是数字(整数、小数都可以)时,可以使用.astype(float)函数,否则将会报错(参数传(int)会报错)

3.字符串数据,仅当数据是整数数字时,才能使用.astype(int)函数,否则将会报错。

4.浮点型数据,可以直接使用.astype(int)函数,使用后数据将只保留整数部分。

5.整型数据,可以直接使用.astype(float)函数,使用后数据将用0补充为1位小数。

6.整型、浮点型数据,可以直接使用.astype(bool)函数。

7.如果数据是整型0、浮点型0.0,则会转化为布尔值False;如果数据是非0,则会转化为布尔值True。


统计函数

1.求均值:.mean()

2.处理输出数据:.round()函数取整

round(n)三种情况

(1).n>0,表示保留小数点后n位小数

(2).n=0,取整

(3).n为负,-1,-2...依次保留到十位数,百位数

3.多列统计data[[传入列表]].mean()

复制代码
import pandas as pd
data = pd.read_csv(r"D:\Programme\Python_programme\数据分析\素材\电商数据清洗.csv")

pay_mean = data['payment'].mean()
print(pay_mean.round())
print(pay_mean.round(2))

print(data[["payment","price","cutdown_price"]].mean())#多列统计

「安静」要你真正进入你在做的事情,它让每个时刻都变得足够重要,让你不必通过别人来过自己的生活。 ---艾林·卡格

相关推荐
这里有鱼汤1 小时前
【花姐小课堂】新手也能秒懂!用「风险平价」打造扛造的投资组合
后端·python
databook14 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar16 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805116 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_16 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
RestCloud16 小时前
数据传输中的三大难题,ETL 平台是如何解决的?
数据分析·api
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构