python中数据的索引和筛选以及文件的打开

索引

列索引

访问一列数据
data["columns"]
访问多列数据
data[["columns_1","columns_2",...]]

import pandas as pd
 # 先建一个数组或直接打开csv文件
data = {'第一季度':[55,78,93,44],'第二季度':[87,55,64,50],'第三季度':[62,67,72,58]}
cost = ["食品","日用品","交通出行","生活服务"]
data = pd.DataFrame(data,index=cost)
 # 单行索引
print(data["第一季度"])
print(data["第二季度"])
 # 多行索引
print(data[["第一季度","第二季度","第三季度"]])

运行结果

行索引

.loc属性

访问某一行:
.loc[index的值]
访问连续的几行:
.loc[起点index的值:结束index的值]
包括结束index这一行的数据
访问不连续的某几行:
.loc[[第一个index的值,第二个index的值,……]]

import pandas as pd
 # 先建一个数组或直接打开csv文件
data = {'第一季度':[55,78,93,44],'第二季度':[87,55,64,50],'第三季度':[62,67,72,58]}
cost = ["食品","日用品","交通出行","生活服务"]
data = pd.DataFrame(data,index=cost)
 # 访问一行
print(data.loc["食品"])
 # 访问连续几行
print(data.loc["食品":"交通出行"])
 # 访问不连续的几行
print(data.loc[["食品","生活服务","日用品"]])

运行结果

访问单个元素:
.loc[index的值,columns的值]
访问多个元素:
.loc[index切片或列表,columns切片或列表]

import pandas as pd
 # 先建一个数组或直接打开csv文件
data = {'第一季度':[55,78,93,44],'第二季度':[87,55,64,50],'第三季度':[62,67,72,58]}
cost = ["食品","日用品","交通出行","生活服务"]
data = pd.DataFrame(data,index=cost)
 # 访问单个元素
print(data.loc["食品","第一季度"])
 # 访问多个元素
print(data.loc["食品":"日用品","第一季度":"第三季度"])
print(data.loc[["食品","交通出行"],["第一季度","第三季度"]])

运行结果

.iloc属性

访问某一行:
.iloc[index的值]
访问连续的几行:
.iloc[起点index的值:结束index的值]
不包括结束index这一行的数据
访问不连续的某几行:
.iloc[[第一个index的值,第二个index的值,……]]
访问单个元素:
.iloc[index的值,columns的值]
访问多个元素:
.iloc[index切片或列表,columns切片或列表]
(与.loc用法类似)

数据筛选

布尔索引

一个判断条件
data[data["索引对象"]>0]
条件表达式

  1. pandas通过条件表达式得到一个布尔型Series,再通过这个Series来索引数据。
  2. 常见的比较运算符有:==,<,>,>=,<=,!=
  3. 常见的逻辑运算符有:&,|,~
import pandas as pd
# 先建一个数组或直接打开csv文件
data = {'第一季度':[55,78,93,44],'第二季度':[87,55,64,50],'第三季度':[62,67,72,58]}
cost = ["食品","日用品","交通出行","生活服务"]
data = pd.DataFrame(data,index=cost)
print(data[data["第一季度"]>70]["第一季度"])

运行结果

多个判断条件
data[(data["cutdwn price"]>0)&(data["post_fee" ]>0)]

import pandas as pd
 # 先建一个数组或直接打开csv文件
data = {'第一季度':[55,78,93,44],'第二季度':[87,55,64,50],'第三季度':[62,67,72,58]}
cost = ["食品","日用品","交通出行","生活服务"]
data = pd.DataFrame(data,index=cost)
print(data[(data["第一季度"]>70) & (data["第三季度"]>70)])

运行结果
注意:
过程等同于先进行第一个判断,然后在此结果的基础上再进行第二个判断,以此类推。

文件读取

在这里插入图片描述
在pandas模块中,读取CSV文件主要使用pd.read_csv()函数。

参数

必选参数
要读取的CSV文件的文件路径。
可选参数
指定行索引:index_col
获取指定列:uescols
添加columns:header=Nonenames
设置格式参数encoding=“utf-8”,避免读取csv文件乱码。

保存文件

data.to_csv("/Users/mile.csv")
对于一个DataFrame对象执行语句:
DataFrame.to_csv()
必选参数
要保存的CSV文件的文件路径
可选参数
设置索引参数index=False,这样就不会讲行索引信息写入第一列。
设置格式参数encoding=“utf-8-sig”,避免生成的csv文件乱码

读取Excel文件

data = pd.read_excel()
在pandas模块中,读取Excel文件主要使用pd.read_excel()函数。

参数

必选参数
读取的Excel文件的文件路径
可选参数
当我们需要读取指定工作表时,pd.read_excel()函数提供了一个参数:sheet_name,要将读取的工作表名称作为字符串传入该参数即可。
data = pd.read_excel(".xlsx",sheet_name="工作表")

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值