数据分析(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 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
深度学习lover1 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
API快乐传递者2 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
阡之尘埃4 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
布说在见7 小时前
层次与网络的视觉对话:树图与力引导布局的双剑合璧
信息可视化·数据挖掘·数据分析
丕羽7 小时前
【Pytorch】基本语法
人工智能·pytorch·python