Python----Pandas

目录

Series属性

DataFrame的属性

Pandas的CSV文件

Pandas数据处理


Pandas的主要数据结构是Series(一维数据)与DataFrame(二维数据)

Series属性

Series的属性如下:

属性描述
pandas.Series(data,index,dtype,name,copy)Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。
data: 一组数据(ndarray 类型)
index: 数据索引标签,如果不指定,默认从 0 开始。
dtype: 数据类型,默认会自己判断。
name: 设置名称。
copy: 拷贝数据,默认为 False。

 示例1:

>>> import pandas as pd
>>> a = [1,2,3]
>>> sa = pd.Series(a)
>>> print(sa)
0    1
1    2
2    3
dtype: int64
>>> sa[1]
2
>>> a = ['Google','baidu','wiki']
>>> sa = pd.Series(a,index=['x','y','z'])
>>> print(sa)
x    Google
y     baidu
z      wiki
dtype: object

示例2:

Pandas数据类型包括

•object字符串或混合类型

•int 整型

•float浮点型

•datetime时间类型

•bool布尔型

>>> import numpy as np
>>> import pandas as pd
>>> s = pd.Series(np.random.randn(4),index=['a','b','c','d'])
>>> print(sa)
a   -1.226694
b    0.157971
c    0.022525
d    2.606825
dtype: float64
>>> s[:2] #选取前两条数据
a   -1.226694
b    0.157971
dtype: float64 
>>> s[[1,3]] # 选取第2和第4条数据
b    0.157971
d    2.606825
dtype: float64
>>> s[s<s.mean()] #x小于平均值
a   -1.226694
b    0.157971
c    0.022525
dtype: float64
>>> s['a'] #通过索引值选取元素-1.2266936531191652
>>> s[['c','d']] # 多个索引值,注意括号
c    0.022525
d    2.606825
dtype: float64
>>> s = pd.Series(data=['1.2','1.5','2.7','2.3']) 
>>> b = s.astype('float32') # 转换类型
>>> print(b)
0    1.2
1    1.5
2    2.7
3    2.3
dtype: float32

DataFrame的属性

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)

示例:

# 使用列表创建
>>> import pandas as pd
>>> data = [['Google',10],['Baidu',12],['Wiki',13]] #二维列表
>>> df = pd.DataFrame(data, columns=['site','Age'])
>>> print(df)site  Age
0  Google   10
1   Baidu   12
2    Wiki   13
# 使用字典创建,其中字典的key为列名
>>> data = {'Site':['Google', 'Baidu','Wiki'],'Age':[10,12,13]}
>>> pf = pd.DataFrame(data)
>>> print(pd)Site  Age
0  Google   10
1   Baidu   12
2    Wiki   13

•Pandas 可以使用 loc 属性返回指定行的数据,如果没有设置索引,第一行索引为 0,第二行索引为 1,以此类推:

>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[0]) # 返回第一行
calories    420
duration     50
Name: 0, dtype: int64

注意:返回结果其实就是一个 Pandas Series数据。

•可以返回多行数据,使用[[...]]格式,其中...为各行的索引,逗号隔开:

>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[[0,1]]) # 返回第一行和第二行calories  duration
0       420        50
1       380        40

注意:返回结果其实就是一个 Pandas DataFrame 数据。

# 查看指定列
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df['calories']) #一列访问
0    420
1    380
2    390
Name: calories, dtype: int64
>>> print(df[['calories','duration']]) # 多列访问calories  duration
0       420        50
1       380        40
2       390        45
# 查看指定行和列
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data)
>>> print(df.loc[0,'calories']) #第0行,calories数值
420
# 可以指定索引值index:
>>> data = {'calories':[420, 380, 390],'duration':[50,40,45]}
>>> df = pd.DataFrame(data, index=['day1','day2','day3'])
>>> print(df)calories  duration
day1       420        50
day2       380        40
day3       390        45
# 可以使用loc属性返回指定索引对应到的某一行
>>> print(df.loc['day1'])
calories    420
duration     50
Name: day1, dtype: int64

Pandas的CSV文件

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.to_string())
# to_string()用于返回DataFrame类型的数据,如果不使用该函数,则输出结果
# 为数据的前面5行和末尾5行,中间部分以...代替

将DataFrame存储为CSV文件

to_csv()方法

import pandas as pd
# 三个字段 name, site, age
nme = ["Google", "Baidu", "Taobao", "Wiki"]
st = ["www.google.com", "www.baidu.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 98]
# 字典
dict = {'name': nme, 'site': st, 'age': ag}
df = pd.DataFrame(dict)
# 保存 dataframe
df.to_csv('site.csv')

Pandas数据处理

•使用 head(n) 方法用于读取前面的 n 行,如果不填参数 n ,默认返回 5 行

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.head())
输出:Name            Team  Number  ... Weight            College     Salary
0  Avery Bradley  Boston Celtics     0.0  ...  180.0              Texas  7730337.0
1    Jae Crowder  Boston Celtics    99.0  ...  235.0          Marquette  6796117.0
2   John Holland  Boston Celtics    30.0  ...  205.0  Boston University        NaN
3    R.J. Hunter  Boston Celtics    28.0  ...  185.0      Georgia State  1148640.0
4  Jonas Jerebko  Boston Celtics     8.0  ...  231.0                NaN  5000000.0

示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.head(10))
输出:Name            Team  Number  ... Weight            College      Salary
0  Avery Bradley  Boston Celtics     0.0  ...  180.0              Texas   7730337.0
1    Jae Crowder  Boston Celtics    99.0  ...  235.0          Marquette   6796117.0
2   John Holland  Boston Celtics    30.0  ...  205.0  Boston University         NaN
3    R.J. Hunter  Boston Celtics    28.0  ...  185.0      Georgia State   1148640.0
4  Jonas Jerebko  Boston Celtics     8.0  ...  231.0                NaN   5000000.0
5   Amir Johnson  Boston Celtics    90.0  ...  240.0                NaN  12000000.0
6  Jordan Mickey  Boston Celtics    55.0  ...  235.0                LSU   1170960.0
7   Kelly Olynyk  Boston Celtics    41.0  ...  238.0            Gonzaga   2165160.0
8   Terry Rozier  Boston Celtics    12.0  ...  190.0         Louisville   1824360.0
9   Marcus Smart  Boston Celtics    36.0  ...  220.0     Oklahoma State   3431040.0

使用 tail(n) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN。

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.tail())
输出:Name       Team  Number Position  ...  Height Weight  College     Salary
453  Shelvin Mack  Utah Jazz     8.0       PG  ...     6-3  203.0   Butler  2433333.0
454     Raul Neto  Utah Jazz    25.0       PG  ...     6-1  179.0      NaN   900000.0
455  Tibor Pleiss  Utah Jazz    21.0        C  ...     7-3  256.0      NaN  2900000.0
456   Jeff Withey  Utah Jazz    24.0        C  ...     7-0  231.0   Kansas   947276.0
457           NaN        NaN     NaN      NaN  ...     NaN    NaN      NaN        NaN

示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.tail(10))
输出:Name       Team  Number  ... Weight   College      Salary
448  Gordon Hayward  Utah Jazz    20.0  ...  226.0    Butler  15409570.0
449     Rodney Hood  Utah Jazz     5.0  ...  206.0      Duke   1348440.0
450      Joe Ingles  Utah Jazz     2.0  ...  226.0       NaN   2050000.0
451   Chris Johnson  Utah Jazz    23.0  ...  206.0    Dayton    981348.0
452      Trey Lyles  Utah Jazz    41.0  ...  234.0  Kentucky   2239800.0
453    Shelvin Mack  Utah Jazz     8.0  ...  203.0    Butler   2433333.0
454       Raul Neto  Utah Jazz    25.0  ...  179.0       NaN    900000.0
455    Tibor Pleiss  Utah Jazz    21.0  ...  256.0       NaN   2900000.0
456     Jeff Withey  Utah Jazz    24.0  ...  231.0    Kansas    947276.0
457             NaN        NaN     NaN  ...    NaN       NaN         NaN

•info() 方法返回表格的一些基本信息(索引、数据类型和内存信息)

示例1:

import pandas as pd
df = pd.read_csv('nba.csv')
print(df.info())

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 458 entries, 0 to 457 #行数,458,行,第一行编号为0

Data columns (total 9 columns): #列数,9

 #   Column    Non-Null Count  Dtype  #各列的数据类型

---  ------    --------------  ----- 

 0   Name      457 non-null    object  #non-null,意思是非空的数

 1   Team      457 non-null    object

 2   Number    457 non-null    float64

 3   Position  457 non-null    object

 4   Age       457 non-null    float64

 5   Height    457 non-null    object

 6   Weight    457 non-null    float64

 7   College   373 non-null    object #college的空值最多

 8   Salary    446 non-null    float64

dtypes: float64(4), object(5)

memory usage: 32.3+ KB

 示例2:

import pandas as pd
df = pd.read_csv('nba.csv')
a = df.sort_values(by='Weight') # 按Weight列数据升序排列
print(a.head().to_string())
输出:Name                  Team  Number Position   Age Height  Weight                College     Salary
152      Aaron Brooks         Chicago Bulls     0.0       PG  31.0    6-0   161.0                 Oregon  2250000.0
350     Briante Weber            Miami Heat    12.0       PG  23.0    6-2   165.0  Virginia Commonwealth        NaN
263      Bryce Cotton     Memphis Grizzlies     8.0       PG  23.0    6-1   165.0             Providence   700902.0
359  Brandon Jennings         Orlando Magic    55.0       PG  26.0    6-1   169.0                    NaN  8344497.0
286       Tim Frazier  New Orleans Pelicans     2.0       PG  25.0    6-1   170.0             Penn State   845059.0print(a[a.Weight > 200].head().to_string()) # Weight列大于200的
输出:Name                  Team  Number Position   Age Height  Weight       College     Salary
47        Isaiah Canaan    Philadelphia 76ers     0.0       PG  25.0    6-0   201.0  Murray State   947276.0
309       Kent Bazemore         Atlanta Hawks    24.0       SF  26.0    6-5   201.0  Old Dominion  2000000.0
226       Rashad Vaughn       Milwaukee Bucks    20.0       SG  19.0    6-6   202.0          UNLV  1733040.0
453        Shelvin Mack             Utah Jazz     8.0       PG  26.0    6-3   203.0        Butler  2433333.0
282  Bryce Dejean-Jones  New Orleans Pelicans    31.0       SG  23.0    6-6   203.0    Iowa State   169883.0 

示例3:

import pandas as pd
df = pd.read_csv('nba.csv')
df['one'] = 1 #增加一个固定值的列
print(df.head().to_string())
输出:Name            Team        Number Position   Age Height  Weight            College     Salary  one
0  Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0    1
1    Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0    1
2   John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN    1
3    R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0    1
4  Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0    1print(a[a.Weight > 200].head().to_string()) # Weight列大于200的
输出:Name                  Team  Number Position   Age Height  Weight       College     Salary
47        Isaiah Canaan    Philadelphia 76ers     0.0       PG  25.0    6-0   201.0  Murray State   947276.0
309       Kent Bazemore         Atlanta Hawks    24.0       SF  26.0    6-5   201.0  Old Dominion  2000000.0
226       Rashad Vaughn       Milwaukee Bucks    20.0       SG  19.0    6-6   202.0          UNLV  1733040.0
453        Shelvin Mack             Utah Jazz     8.0       PG  26.0    6-3   203.0        Butler  2433333.0
282  Bryce Dejean-Jones  New Orleans Pelicans    31.0       SG  23.0    6-6   203.0    Iowa State   169883.0 

•drop()方法:通过指定标签名称和响应的轴,或者直接指定索引或列名称,删除行或列

属性描述

pandas.DataFrame.drop(labels=None, axis=0,index=None,columns=None,

level=None,inplace=False,errors=’raise’)

通过指定标签名称和相应的轴,或直接指定索引或列名称,删除行或列。
labels 单个标签或者标签列表
axis=0 默认 删除index; axis=1 指定删除列
inplace=True 修改原数据
level 针对多重索引 指定级别
index 指定索引
columns 指定列名

示例:

>>>import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
输出:a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
#删除行
>>> df.drop(2)a  b  c  d
0  0  1  2  3
1  4  5  6  7
>>> df.drop([0,1])a  b   c   d
2  8  9  10  11>>>import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
输出:
# 删除列
>>> df.drop('a', axis=1)b   c   d
0  1   2   3
1  5   6   7
2  9  10  11
>>> df.drop(['b','c'], axis=1)a   d
0  0   3
1  4   7
2  8  11
>>> df.drop(columns=['b','c']) # 同上a   d
0  0   3
1  4   7
2  8  11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis 的快速入门以及基于spring boot整合mybatis

MyBatis基础 MyBatis是一款非常优秀的持久层框架&#xff0c;用于简化JDBC的开发 准备工作&#xff1a; 1&#xff0c;创建sprong boot工程&#xff0c;引入mybatis相关依赖2&#xff0c;准备数据库表User&#xff0c;实体类User3&#xff0c; 配置MyBatis&#xff08;在applic…

2005-2021年地级市绿色发展注意力数据(根据政府报告文本词频统计)

2005-2021年地级市绿色发展注意力数据&#xff08;根据政府报告文本词频统计&#xff09; 1、时间&#xff1a;2005-2021年 2、指标&#xff1a;省、市、年份、一级指标、关键词、关键词词频、总词频 3、范围&#xff1a;270个地级市 4、来源&#xff1a;地级市政府工作报告…

【C++】动态内存管理——new和delete

这篇文章我们讲一下C的动态内存管理&#xff0c;从一个比较陌生的知识说起&#xff0c;我们知道&#xff0c;一个工程可以创建很多.c文件&#xff0c;我们如果定义一个全局变量&#xff0c;只要用extern声明一下&#xff0c;在每个文件都可以用。而用static修饰的全局变量只能在…

MyBatis动态sql语句

1、if if元素可以用于根据条件判断是否包含某个SQL语句片段。 <!--查询年龄大于18岁且小于等于30岁的用户信息:<if>元素用于判断minAge和maxAge是否为null&#xff0c;如果不为null&#xff0c;则将对应的SQL语句片段拼接到最终的SQL语句中 --> <select id&quo…

【ecology】通过F12抓取页面SQL

1、点击流程监控&#xff0c;打开浏览器的”开发者工具“&#xff08;F12&#xff09;&#xff1b; 2、点击搜索&#xff0c;在开发者工具中找到sessionkey&#xff0c;复制后面的值。 3、http://58.213.83.186:8081/api/ec/dev/table/getxml?dataKey 上面的网址的IP地址修改…

Gee教程6.模板(HTML Template)

这一章节的内容是介绍 Web 框架如何支持服务端渲染的场景 实现静态资源服务(Static Resource)。支持HTML模板渲染。 这一章节很多内容是基于net/http库的&#xff0c;该库已经实现了很多静态文件和HMML模板的相关功能的了。 静态文件 网页的三剑客&#xff0c;JavaScript、C…

代理模式-C++实现

代理模式是一种结构型设计模式&#xff0c;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个对象不适合或者无法引用另一个对象&#xff0c;这个时候就需要一个代理对象充当客户端和目标对象之间的中介。 代理模式就是代理对象具备目标对象的所有…

如何写项目部署文档

编写项目部署文档&#xff0c;这是确保项目顺利部署和上线的重要步骤。 1. 项目概述 在这里简要介绍项目的目的、功能和特点。 2. 系统要求 列出项目部署所需的硬件和软件要求&#xff0c;例如操作系统、Java版本、数据库等。 3. 安装步骤 描述项目的下载和安装步骤&…

看懂lscpu的输出

文章目录 1. lscpu1.1 Architecture1.2 逻辑核心数1.3 缓存1.4 CPU型号1.5 NUMA架构1.5.1 CPU多核架构1.5.2 多CPU Socket架构 2. cat /proc/cpuinfo2.1 关键字段 1. lscpu 通过lscpu查看当前系统的CPU信息。 [hadoopserver3 ~]$ lscpuArchitecture: x86_64 …

第十四周课堂笔记

7.Java语言类的关键技术 7.1类的成员的权限修饰符 private&#xff1a;表示仅能在类的内部访问该成员&#xff0c;无法从类的外部访问该成员 public&#xff1a;表示该成员可以被其他的任何类使用 缺省&#xff1a;表示该成员仅能被同一个包中的类所访问或者调用 7.2方法的…

「词令」2023年12月6日蚂蚁庄园今日问题答案是什么?支付宝蚂蚁庄园今日答案12.6

问题&#xff1a;千页豆腐的主要原料是豆腐吗&#xff1f; 选项&#xff1a;A、不是哦 B、当然是 答案&#xff1a;不是哦 解析&#xff1a;千页豆腐是素食新产品&#xff0c;以大豆分离蛋白和水为主要原料&#xff0c;食用植物油、淀粉等为辅料;添加或不添加稳定剂和凝固剂…

java--接口的其他细节

1.jdk8开始&#xff0c;接口新增了三种形式的方法 ①默认方法(实例方法)&#xff1a;使用用default修饰&#xff0c;默认会被加上public修饰。注意&#xff1a;只能使用接口的实现类对象调用 ②私有方法&#xff1a;必须用private修饰(jdk9开始才支持) ③类方法(静态方法)&a…

如何实现微信公众号自助查券返利机器人?

如何实现微信公众号自助查券返利机器人&#xff1f; 在当今的电商时代&#xff0c;越来越多的人选择在网上购物。然而&#xff0c;寻找商品的优惠券和返利却是一件繁琐的事情。为了解决这个问题&#xff0c;我们可以借助微信公众号和微赚淘客系统来实现自助查券返利机器人的功…

【聚类】K-modes和K-prototypes——适合离散数据的聚类方法

应用场景&#xff1a; 假设一批数据&#xff0c;每一个样本中&#xff0c;有唯一标识&#xff08;id&#xff09;、品类&#xff08;cate_id&#xff09;、受众&#xff08;users, 小孩、老人、中年等&#xff09;等属性&#xff0c;希望从其中找出一些样本&#xff0c;使得这…

9-MapReduce开发技术

单选题 题目1&#xff1a;MapReduce自定义排序规则需要重写下列那项方法 选项: A readFields() B compareTo() C map() D reduce() 答案&#xff1a;B ------------------------------ 题目2&#xff1a;下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是 选项: A…

Docker安装与基础操作

Docker优势&#xff1a; 1.交付物标准化&#xff1a;标准化设计大大提高了物流体系的运行效率。传统的软件交付物包括&#xff1a;应 用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准 化组件。…

234 回文链表

解题思路&#xff1a; \qquad 由于链表的结构特点&#xff0c;访问链表中的元素的时间复杂度为O(n)。相比较而言&#xff0c;使用数组会方便很多&#xff0c;实现O(1)访问。 \qquad 所以这个题&#xff0c;可以先遍历一遍把数值存到数组中&#xff0c;再使用双指针判断是否是…

openlayers地图使用---跟随地图比例尺动态标绘大小的一种方式

openlayers地图使用—跟随地图比例尺动态标绘大小的一种方式 预期&#xff1a;随着地图比例尺放大缩小&#xff0c;地图上的标绘随着变化尺寸 结果图 页面元素 <script src"https://cdn.bootcdn.net/ajax/libs/openlayers/8.1.0/dist/ol.min.js"></script…

7_企业架构MySQL读写分离

企业架构MySQL读写分离 学习目标和内容 1、能够理解读写分离的目的 2、能够描述读写分离的常见实现方式 3、能够通过项目框架配置文件实现读写分离 4、能够通过中间件实现读写分离 一、背景描述及其方案设计 1、业务背景描述 时间&#xff1a;2014.6.-2015.9 发布产品类型&…

AntDesignBlazor示例——创建项目

本示例是AntDesign Blazor的入门示例&#xff0c;在学习的同时分享出来&#xff0c;以供新手参考。 示例代码仓库&#xff1a;https://gitee.com/known/AntDesignDemo 1. 开发环境 VS2022 17.8.2.NET8AntDesign 0.16.2 2. 学习目标 创建新项目安装AntDesign组件包及使用方…