数据分析

这篇博客详细介绍了如何在Python中进行数据查询分析,包括数据的建立、选择、显示、更新和排序。重点讲解了如何利用loc和iloc函数选择行和列,以及依据条件选择数据。还探讨了如何替换和格式化列名与数据显示,提供了具体的案例分析。
摘要由CSDN通过智能技术生成

数据查询分析

1.1数据的建立

# coding:utf-8                        # 编码申请
import pandas as pd                  # 导入pandas工具包,pd可以理解为给工具包起的别名
from pandas import DataFrame         # 表示pandas中要导入的类
data = {'ID':['000001','000002','000003','000004','000005','000006','000007'],
       'name':['黎明', '赵怡春','张富平','白丽', '牛玉德', '姚华',  '李南'],
       'gender':[True,  False,   True,    False,  True,    False,   True],
       'age':[16,20,18,18,17,18,16],
       'height':[1.88,1.78,1.81,1.86,1.74,1.75,1.76]}

# 变量不用加引号,字符需要加引号

frame = pd.DataFrame(data)  

# 包中的类用.表示,括号里面可以理解为参数,即表示根据什么数据来生成DataFrame

# frame = pd.DataFrame(data,index=[6,5,4,3,2,1,0])

# index参数可以改变索引号
print(frame)

 

1.2数据的选择

# 显示所有学生姓名

print(frame['name'])

print(frame.name)

# 结果一样

 

# 显示多个列

print(frame[['name','age']])

# frame后面的[]只能放一个变量,需要再次使用方括号将两字段括起来

 

# 行的显示

print(frame[0:1])

# 这里的数字并非索引号,而是按序得到的行号

print(frame[2:4])

print(frame[2:7:2]) # 每2个取一个

# 行列选择

# 两者谁在前谁在后效果一样

print(frame['name'][1:2])

print(frame[1:2]['name'])

 

# 利用特殊函数loc读取

# 索引号为1的第二行
print(frame.loc[1])

# 通过冒号选择连续的多行,loc中,下界要算
print(frame.loc[1:3])

# 通过逗号选择多个不连续的行
print(frame.loc[[1,3]])       # 里面[]括起来一个列表,外面[]表示loc函数的参数

 

# frame[]与frame.loc[]区别

# frame[]里面是序号,frame.loc[]里面参数是索引号

frame = pd.DataFrame(data,index=[101,102,103,104,105,106,107])
print(frame[0:1])
print(frame[101:103]) #无结果

print(frame.loc[0:1]) #无结果
print(frame.loc[101:103]) 

 

 # 利用loc读取列 逗号前:行  逗号后:列

print(frame.loc[:,['name']])

print(frame.loc[:,['name','age']])

 

 # 选择任意单元格

print(frame.loc[105:106,['age','height']])

 

 # iloc函数使用

# iloc函数,根据序号来访问行和列

print(frame.iloc[1,3]) # 表示第2行 第4列

# 根据区间的选择方法

print(frame.iloc[1:2,0:3])

# 任意选择

print(frame.iloc[[3,1],[0,2]]) # 表示第4和第2行 同时第1和第3列

 

 # 依据条件选择行

# 获取年龄大于17岁的学生姓名
print(frame[frame['age']>17]) # 选择行的方法是在方括号里表达一个列的比较条件

# 年龄大于17岁并且身高大于1.80
print(frame[ (frame['age']>17) & (frame['height']>1.80) ] )

# 对于布尔类型条件,判断是否等于真假需要使用==
print(frame[ (frame['age']>17) & (frame['gender']==True) ] )

# 使用isin表示一个离散的范围
print(frame[frame['age'].isin([20,16])])  # 所有年龄在20或者16的学生信息

# 条件选择任意组合
print(frame['name'][[2,3]][(frame['height']>1.80)])

# 查询身高大于1.80的男生姓名
print(frame['name'][(frame['height']>1.80)&(frame['gender']==True)])



 

 

 

1.3数据的显示

# 真的替换列名

frame.columns = ['学号','姓名','性别','年龄','身高']

 # 临时性替换

print(frame.rename(columns={'ID':'学号','name':'姓名','gender':'性别'}))

 # 分开显示姓

print(frame['name'].str[0:1])

 # 字符串相加形成更多显示效果

print(frame['name'].str[0:1]+'同学')

 # 形成计算列,并存储下来

frame['newname']=frame['name'].str[0:1]+'同学'
print(frame)

 # 不同类型列调用自己不同类型的方法

print(frame['height'].round(1))

 # 索引号的显示

# 直接设定index属性
frame.index = [6,5,4,3,2,1,0]


# 可以按照rename,指定改变index
print(frame.rename(index={0:6, 1:5, 2:4, 3:3, 4:2, 5:1, 6:0}))


 # 整体格式化输出

print(frame.to_html())

# 可生成一个网页代码,保存在记事本中,以.html结尾,再次打开,就可看见真正表格

1.4数据的更新

1.5数据的排序

1.6案例分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值