panda 专业来说是,基于Numpy的一个强大的分析结构化数据的工具集,可以快速实现数据清洗功能。而对我来说,panda同时也是一个强大的,自动化办公工具集,同时支持cvs、xlsx等多种格式文件的信息处理。用它处理表格数据是非常高效的!
提示:本文主要表述的是Python的Panda文档处理方法和使用技巧
文章目录
一、安装与环境
- 通过cmd命令行的方式进行安装
pip install Pandas
- 安装读取xlsx文件的依赖库
pip install xlrd==1.2.0
如果报这个错误就是就是没有这个依赖库,且值得注意的是,要指定版本,不然最新版本,不支持xlsx文件
ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
- 测试一下代码,没报错就算成功安装了
import pandas as pd
pd.read_excel("你本地的xlsx文件路径")
二、读取和展示数据
导入panda库,导入成功后,就可以通过简化后的pd名称调用,panda库的各种方法了
import pandas as pd
1. 读取不同格式的数据
- 读取csv文件
import pandas as pd
pd.read_csv("file.csv")
- 读取xlsx文件和xls文件
import pandas as pd
pd.read_excel("file.xlsx")
从这两个例子中可以看出,读取支持格式的文件,方法都会以read_.*
开头,所有想读取文件可以先输入read_
查看提示选项。
2. 只将部分内容载入内存
- 有时候会遇到一种情况,数据文件太大,一次性加载入内存,需要好久,不利我们开发观察,这时我们只想读取文件的前10行,后边数据不载入内存了
pd.read_csv("file.csv", nrows=10) # 只将文件前10行加载入内存
三、Panda内容展示
这里主要介绍的,将内容展示到控制台,以及做一些处理,去除表格内容干扰!
1. 控制台内容展示
- 查看全部数据
import pandas as pd
data=pd.read_csv("file.csv")
print(data)
- 查看前10行数据(这里和上方说的不一样,这里是将文件数据全部载入内容处理后,在读取前10行)
import pandas as pd
data=pd.read_csv("file.csv")
print(data.head(10))
- 查看后10行
print(data.tail(10))
- 只查看某列或者某两列
print(data["列名1"]) #查看列名1所有数据
print(data["列名1","列名2"]) #查看列名1和列名2所有数据,以此类推可以展示更多
2. 去除干扰的数据
有时候读取表格的时候,第一行,写的是一个大标题;而第二行才是,才是全篇表格的标题,这时,我们可以修改默认标题行
- 指定某一行为表格标题
import pandas as pd
data = pd.read_csv("file.csv", header=1) #指定第一行为标题,索引从0开始
- 删除后边几行
data.drop(data.tail(10).index, inplace=True) # 去掉后边10行,inplace在原理基础上
- 删除某一列
del data["列名"]
四、 数据分析
这一节将介绍数据分析,如数据对比判断,数据筛选,排序,统计等!
1. 数据排序
- 对某一列数据进行升序排序
data= data.sort_values(by='列名')
- 对某列数据进行降序排序
data=data.sort_values(by='列名',ascending=False)
- 对行的数据进行排序
sort = data.iloc[i][4:].sort_values() #正序
sort = data.iloc[i][4:].sort_values(ascending=False) #逆序
2. 筛选数据
- 筛选比
1
大的数据
data=data[data["列名"]> 1]
- 筛选等于1的数据
data=data[data["列名"]== 1]
- 筛选等于,1,2,3,4,5,6数据的行
list_data=[1,2,3,4,6]
data[data["列名"].isin(list_data)]
3. 列类型转换以及字符串拼接
- 将某一列类型转换成为字符串类型
data["列名"].astype(str)
- 给某列添加字符串前缀
data["列名"]="前缀"+data["列名"].astype(str)
- 将某列转为整形
data["列名"]=row["列名"].astype("Int64")
- 转为浮点型
data["列名"]=row["列名"].astype("float64")
4. 数据修改
- 修改标题名称
data.rename(columns={'旧列名':'新列名'}, inplace=True)
- 定位具体数字值
data["列名"]["行名"].values
# 返回的是一个列表
- 创建新列
data["新列名"]=[...]# 列表里边的数据长度一定要和其他列一样长
5. 保存数据
- 保存 CSV数据
data.to_csv("new_file.csv",index=False)
- 保存xlsx数据
new_data.to_excel("new_file.xlsx",index=False)
提示: 如果不加 index=False 的话会默认对出一行索引行
6. 计算
- 两列数据相除,得到新的一列
data['新的一列'] =firearms.apply(lambda x: x['列名1'] / x['列名2'], axis=1) #如果加的话换掉/ 号即可
- 计算平均值
data["列名"].mean()
- 计算某列的和
data["列名"].sum()
- 对数据进行分组,数据一样的为一组
group_data=data.groupby("列名")
# 对分组里边的数据进行排序
group_data.apply(lambda x: x.sort_values('排序列名'))
- 取出每个分组的第一行
newData = group_data.head(1) # 有10组,就会返回10行数据
7. 其他
- 我在这里描述的只有 Panda的一些基础功能,还有很多功能待完善,希望能得到大家的支持!