数据分析(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())#多列统计

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

相关推荐
一个处女座的暖男程序猿23 分钟前
2G2核服务器安装ES
服务器·elasticsearch·jenkins
2401_8414956428 分钟前
【自然语言处理】轻量版生成式语言模型GPT
人工智能·python·gpt·深度学习·语言模型·自然语言处理·transformer
曹天骄1 小时前
Let’s Encrypt 证书申请与多服务器 HTTPS 配置指南
运维·服务器·https
lang201509281 小时前
如何在 Linux 中获取更多信息
linux·运维·服务器
我是标同学1 小时前
vmware17安装ubuntu2204版本qemu运行armv8处理器uboot运行调试(包括windows)的一些工作
linux·运维·服务器
云和数据.ChenGuang1 小时前
tensorflow生成随机数和张量
人工智能·python·tensorflow
测试老哥2 小时前
python+requests+excel 接口测试
自动化测试·软件测试·python·测试工具·测试用例·excel·接口测试
AI纪元故事会2 小时前
冰泪与雨丝:一个AI的Python挽歌
开发语言·人工智能·python
ColderYY2 小时前
Python连接MySQL数据库
数据库·python·mysql
寒秋丶2 小时前
Milvus:数据库层操作详解(二)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库