python Pandas之DataFrame索引及选取数据
作者:xiaozheng123121 发布时间:2023-01-01 02:27:10
1.索引是什么
1.1 认识索引
先创建一个简单的DataFrame。
myList = [['a', 10, 1.1],
['b', 20, 2.2],
['c', 30, 3.3],
['d', 40, 4.4]]
df1 = pd.DataFrame(data = myList)
print(df1)
--------------------------------
[out]:
0 1 2
0 a 10 1.1
1 b 20 2.2
2 c 30 3.3
3 d 40 4.4
DataFrame中有两种索引:
行索引(index):对应最左边那一竖列
列索引(columns):对应最上面那一横行
两种索引默认均为从0开始的自增整数。
# 输出行索引
print(df1.index)
[out]:
RangeIndex(start=0, stop=4, step=1)
---------------------------------------
# 输出列索引
print(df1.columns)
[out]:
RangeIndex(start=0, stop=3, step=1)
---------------------------------------
# 输出所有的值
print(df1.values)
[out]:
array([['a', 10, 1.1],
['b', 20, 2.2],
['c', 30, 3.3],
['d', 40, 4.4]], dtype=object)
1.2 自定义索引
可以使用 index 这个参数指定行索引,columns 这个参数指定列索引。
df2 = pd.DataFrame(myList,
index = ['one', 'two', 'three', 'four'],
columns = ['char', 'int', 'float'])
print(df2)
-----------------------------------------------------------
[out]:
char int float
one a 10 1.1
two b 20 2.2
three c 30 3.3
four d 40 4.4
输出此时的行索引和列索引:
# 输出行索引
print(df2.index)
[out]:
Index(['one', 'two', 'three', 'four'], dtype='object')
--------------------------------------------------------
# 输出列索引
print(df2.columns)
[out]:
Index(['char', 'int', 'float'], dtype='object')
2. 索引的简单使用
2.1 列索引
选择一列:
print(df2['char'])
print(df2.char)
# 两种方式输出一样
[out]:
one a
two b
three c
four d
Name: char, dtype: object
注意此时方括号里面只传入一个字符串’char’,这样选出来的一列,结果的类型为Series
print(df2['char'])
print(df2.char)
# 两种方式输出一样
[out]:
one a
two b
three c
four d
Name: char, dtype: object
选择多列:
print(df2[['char', 'int']])
[out]:
char int
one a 10
two b 20
three c 30
four d 40
注意此时方括号里面传入一个列表 [‘char’, ‘int’],选出的结果类型为 DataFrame。
如果只想选出来一列,却想返回 DataFrame 类型怎么办?
print(df2[['char']])
[out]:
char
one a
two b
three c
four d
---------------------------------------
type(df2[['char']])
[out]:pandas.core.frame.DataFrame
注意直接使用df2[0]取某一列会报错,除非columns是由下标索引组成的,比如df1那个样子,df1[0]就不会报错。
print(df1[0])
[out]:
0 a
1 b
2 c
3 d
Name: 0, dtype: object
-----------------------
print(df2[0])
[out]:
KeyError: 0
2.2 行索引
2.2.1 使用[ ]
区别于选取列,此种方式[ ]中不再单独的传入一个字符串,而是需要使用冒号切片。
选取行标签从 ’two’ 到 ’three’ 的多行数据
print(df2['two': 'three'])
[out]:
char int float
two b 20 2.2
three c 30 3.3
选取行标签为’two’这一行数据
# 此时返回的类型为DataFrame
print(df2['two': 'two'])
[out]:
char int float
two b 20 2.2
在[ ]中不仅可以传入行标签,还可以传入行的编号。
选取从第1行到第3行的数据(编号从0开始)
print(df2[1:4])
[out]:
char int float
two b 20 2.2
three c 30 3.3
four d 40 4.4
可以看到选取的数据是不包含方括号最右侧的编号所对应的数据的。
选取第1行的数据
print(df2[1:2])
[out]:
char int float
two b 20 2.2
2.2.2 使用.loc()和.iloc()
区别就是.loc()是根据行索引和列索引的值来选取数据,而.iloc()是根据从0开始的下标位置来进行索引的。
选取行:
使用.loc()
print(df2.loc['one'])
[out]:
char a
int 10
float 1.1
Name: one, dtype: object
-------------------------------------------
print(df2.loc[['one', 'three']])
[out]:
char int float
one a 10 1.1
three c 30 3.3
使用.iloc()
print(df2.iloc[0])
[out]:
char a
int 10
float 1.1
Name: one, dtype: object
-------------------------------------------
print(df2.iloc[[0, 2]])
[out]:
char int float
one a 10 1.1
three c 30 3.3
来源:https://blog.csdn.net/weixin_46713695/article/details/125959391
猜你喜欢
- 许多网页开发者想从ASP.NET 页面传递一个值到另一个页面(比如从一个框架frame页面到一个弹窗页面)。看了代码就明白了。呵呵。(一)向
- Python没有类似于Java的private关键字, 但也可以为类定义私有属性. 只需将属性命名变为以__开头, 例如 __field.示
- 在上一个文章里写了关于左(右)侧定宽右(左)侧自动缩放的两列浮动,这个文章就要说一下三列浮动的问题了。在之前说过,两列浮动是其他多列浮动的基
- javascript模仿alert提示效果,如果你听厌倦了系统自带的那个,可以使用这个alert提示效果,听不错的。相关文章推荐《类似于新浪
- 上一篇相关文章:段正淳的css笔记(2)圆角的做法 1、标题右侧“更多”的实现曾经做上图所示的效果,会使用到position来相对定位到h2
- 使用环境:人才网项目中有一个简历保密设置,其中有一个过滤关键词,只有某个企业的公司名中包含有其中的一个关键字,就不显示该份简历,当然,我还没
- 2天内的现实new文字 <%if DateDiff("d",rs("date"),date()
- 我就废话不多说了,大家还是直接看代码吧~# 导入pptx包from pptx import Presentationprs = Presen
- 1. tensorflow模型文件打包成PB文件import tensorflow as tffrom tensorflow.python.
- 阅读《YUI学习笔记(1)》《YUI学习笔记(2)》YAHOO.lang.later,YAHOO.lang.trim,YAHOO.lang.
- 1 引言在python内存管理中,有一个block的概念。它比较类似于SGI次级空间配置器。首先申请一块大的空间(4KB),然后把它切割成一
- 由于 window.onload 事件需要在页面所有内容(包括图片等)加载完后,才执行,但往往我们更希望在 DOM 一加载完就执行脚本。其实
- 如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担。PPT 分为内容和格式,
- ASP 能快速执行你的 * 页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度
- 前言:通过@语句调用一个函数去给另一个函数增加或修改一些功能的语法规则称之为Python装饰器。下面通过一个小案例来简单的理解什么是装饰器。
- swagger介绍Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具
- 下面十条内容的标题原本是《10 Lessons for Young Designers》,是John C. Jay给年青设计师们的十条经验教
- 解决MySQL中文乱码的问题看到从数据库中取出的数据全部是“?????”,太让人郁闷了。网上有很多方法来解决这个问
- 这篇文章主要介绍了python matplotlib拟合直线的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 目录1. 字符串拆分函数.split()2. 字符串拼接函数.join()扩展:理解" ".join(s.split(&