测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
运维
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
数据分析----pandas快速入门
收藏本文
作者:redrose2100 类别: 日期:2022-06-28 17:24:55 阅读:625 次 消耗积分:0 分
[TOC] # 一、pandas的安装 使用pip工具安装pandas ```bash pip install pandas ``` # 二、pandas处理哪种类型的数据 在pandas中,有两个很重要的概念,DataFrame和Series,简单点来说,DataFrame就是一个类似与excel表格或mysql数据库中的二维表格,而Series就是这个二维表格中的一列。 DataFrame表示如下: ![](http://blog.redrose2100.com/static/upload/20220628_161105.png) Series表示如下: ![](http://blog.redrose2100.com/static/upload/20220628_161129.png) 可以使用python中的字典来创建一个DataFrame对象,其中字典的key就是DataFrame中每一列的表头,而key对应的值是一个列表,这个列表就是DataFrame即二维表中的每一列的数据,具体如下: ```bash >>> import pandas as pd >>> df=pd.DataFrame( ... { ... "name":["Tom","Jack","Helen"], ... "age":[18,15,17], ... "sex":["male","male","female"] ... } ... ) >>> df name age sex 0 Tom 18 male 1 Jack 15 male 2 Helen 17 female >>> ``` 如果取某一列,可以像python中的字典取值一样,通过表头取即可,比如取年龄一列,如下: ```bash >>> df["age"] 0 18 1 15 2 17 Name: age, dtype: int64 >>> ``` 此外,还可以针对DataFrame的某一列(其实就是Series对象)调用常用的函数比如max,sum,min等,如下: ```bash >>> df["age"].max() 18 >>> df["age"].min() 15 >>> df["age"].sum() 50 >>> ``` DataFrame还提供了专门对数据类型的列进行统计分析的含税describe,这里因为name和age不是数据类型,因此在调用describe函数的时候只会对age一列进行统计分析,如下: ```bash >>> df.describe() age count 3.000000 mean 16.666667 std 1.527525 min 15.000000 25% 16.000000 50% 17.000000 75% 17.500000 max 18.000000 >>> ``` 至此对DataFrame相信已经有一个初步的概念了,同时Series也应该有一定的理解了,Series就是一个列,说白了上面的df["age"]其实就是一个Series对象,如下可以验证一下: ```bash >>> type(df["age"])
>>> ``` 此外还可以单独创建一个Series对象,如下 ```bash >>> salary=pd.Series([16000,18000,20000],name="salary") >>> salary 0 16000 1 18000 2 20000 Name: salary, dtype: int64 >>> type(salary)
>>> salary.max() 20000 >>> salary.min() 16000 >>> salary.sum() 54000 >>> ``` # 三、pandas如何读写表格形式的数据 pandas读取数据就是指从比如excel或csv或hdf5或json或sql等类型文件读取出来并自动创建DataFrame对象存储,而pandas写数据则是将DataFrame中的数据写入到指定的格式中,读取数据的方法是read_开头加上数据存储的格式,这里通过dir方法查询到pandas支持的read的方法有如下: * read_clipboard * read_csv * read_excel * read_feather * read_fwf * read_gbq * read_hdf * read_html * read_json * read_orc * read_parquet * read_pickle * read_sas * read_spss * read_sql * read_sql_query * read_sql_table * read_stata * read_table * read_xml ``` 这里创建一个demo.csv文件,内容如下,用于演示pandas的读取数据的使用 ```bash name,age,sex,salary Tom1,18,male,20000 Tom2,19,male,20001 Tom3,20,male,20002 Tom4,21,male,20003 Tom5,22,male,20004 Tom6,23,male,20005 Tom7,24,male,20006 Tom8,25,male,20007 Tom9,26,male,20008 Tom10,27,male,20009 Tom11,28,male,20010 Tom12,29,male,20011 Tom13,30,male,20012 Tom14,31,male,20013 Tom15,32,male,20014 Tom16,33,male,20015 Tom17,34,male,20016 Tom18,35,male,20017 Tom19,36,male,20018 Tom20,37,male,20019 Tom21,38,male,20020 Tom22,39,male,20021 Tom23,40,male,20022 Tom24,41,male,20023 Tom25,42,male,20024 Tom26,43,male,20025 Tom27,44,male,20026 Tom28,45,male,20027 Tom29,46,male,20028 Tom30,47,male,20029 ``` 读取结果如下: ```bash >>> df=pd.read_csv("demo.csv") >>> df name age sex salary 0 Tom1 18 male 20000 1 Tom2 19 male 20001 2 Tom3 20 male 20002 3 Tom4 21 male 20003 4 Tom5 22 male 20004 5 Tom6 23 male 20005 6 Tom7 24 male 20006 7 Tom8 25 male 20007 8 Tom9 26 male 20008 9 Tom10 27 male 20009 10 Tom11 28 male 20010 11 Tom12 29 male 20011 12 Tom13 30 male 20012 13 Tom14 31 male 20013 14 Tom15 32 male 20014 15 Tom16 33 male 20015 16 Tom17 34 male 20016 17 Tom18 35 male 20017 18 Tom19 36 male 20018 19 Tom20 37 male 20019 20 Tom21 38 male 20020 21 Tom22 39 male 20021 22 Tom23 40 male 20022 23 Tom24 41 male 20023 24 Tom25 42 male 20024 25 Tom26 43 male 20025 26 Tom27 44 male 20026 27 Tom28 45 male 20027 28 Tom29 46 male 20028 29 Tom30 47 male 20029 >>> ``` 使用head方法可以取前n行,如: ```bash >>> df.head(10) name age sex salary 0 Tom1 18 male 20000 1 Tom2 19 male 20001 2 Tom3 20 male 20002 3 Tom4 21 male 20003 4 Tom5 22 male 20004 5 Tom6 23 male 20005 6 Tom7 24 male 20006 7 Tom8 25 male 20007 8 Tom9 26 male 20008 9 Tom10 27 male 20009 >>> ``` 使用tail方法可以取后n行,如: ```bash >>> df.tail(5) name age sex salary 25 Tom26 43 male 20025 26 Tom27 44 male 20026 27 Tom28 45 male 20027 28 Tom29 46 male 20028 29 Tom30 47 male 20029 >>> ``` 使用dtypes属性可以查看当前表格有哪些列以及类型,如下: ```bash >>> df.dtypes name object age int64 sex object salary int64 dtype: object >>> ``` 使用info可以查看更详细的信息,如下,这里30 entries表示有30条数据 ```bash >>> df.info()
RangeIndex: 30 entries, 0 to 29 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 30 non-null object 1 age 30 non-null int64 2 sex 30 non-null object 3 salary 30 non-null int64 dtypes: int64(2), object(2) memory usage: 1.1+ KB >> ``` 通过dir(df)可以查看到to_*支持的类型如下: * to_clipboard * to_csv * to_dict * to_excel * to_feather * to_gbq * to_hdf * to_html * to_json * to_latex * to_markdown * to_numpy * to_parquet * to_period * to_pickle * to_records * to_sql * to_stata * to_string * to_timestamp * to_xarray * to_xml 下面就用途to_excel来将df中的数据写入到excel表格中,其中sheet_names是指定shee的名字,而不是写到默认的default的sheet,这里需要注意一下,如果没有安装openpyxl,需要首先安装一下openpyxl,否则可能会报错 ```bash pip install openpyxl ``` 写入数据的,这里indexFalse,则表格的行索引不会写入excel表格 ```bash df.to_excel("demo.xlsx",sheet_name="staff",index=False) ``` 执行完成后,可以查看到在当前目录下,就会出现demo.xlsx文件,内容如下: ![](http://blog.redrose2100.com/static/upload/20220628_172434.png)
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/321
上一篇:
git clone出现fatal: unable to checkout working tree报错的解决办法
下一篇:
Python----常用模块的用法
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件