楼主: 时光永痕
797 0

[数据挖掘新闻] 用Python索引和选择数据–如何为Pandas Series和DataFrame切片,切块 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)四级

20%

威望
0
论坛币
26 个
通用积分
49.8622
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
317 小时
注册时间
2020-7-21
最后登录
2024-5-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用Python索引和选择数据–如何为Pandas Series和DataFrame切片,切块
Python和NumPy索引运算符[]和属性运算符'。(点)可在各种用例中快速轻松地访问熊猫数据结构。该指数是像一个地址,这就是如何在数据帧或一系列的任何数据点都可以访问。行和列都有索引。
索引和选择数据
pandas对象中的轴标签信息有许多用途:
使用已知的指标标识数据(即提供元数据),这对于分析,可视化和交互式控制台显示很重要。
启用自动和显式数据对齐。
允许直观地获取和设置数据集的子集。
索引和选择数据的不同选择
对象选择具有用户要求的几个附加功能,以支持更明确的基于位置的索引。熊猫现在支持三种类型的多轴索引来选择数据。
.loc 主要基于标签,但也可以与布尔数组一起使用
我们正在借助pandas和NumPy创建一个数据框。在数据框中,我们正在借助随机函数生成随机数。在这里,索引由小写字母的标签名称和由大写字母给出的列名称给出。该索引包含六个字母,这意味着我们需要行和三列,这在'randn'函数中也有提及。
如果这两个值与索引,列标签和'randn'函数不匹配,则将给出错误。
#导入pandas库并将别名作为pd
将熊猫作为pd导入
导入numpy作为np df = pd.DataFrame(np.random.randn(6,3),
索引= ['a','b','c','d','e','f'],列= ['A','B','C'])
打印(df.loc ['a':'f'])
索引和选择数据-.loc
如何检查特定行中的值是正还是负。为此,我们给具有零的行值提供条件,输出是一个布尔表达式,用False和True表示。False表示该值小于零,True表示该值大于零。
#用于通过布尔数组获取值
打印(df.loc ['a']> 0)
索引和选择数据-.loc
正如我们在上面的代码中看到的那样,.loc我们正在检查布尔数据的值是正还是负。在行索引“ a”中,第一列的值为负,其他两列的值为正,因此,这些列的布尔值分别为False,True,True。
然后,如果我们只想访问仅一列,则可以使用冒号。方括号中的冒号表示所有行,因为我们没有提到任何切片编号,并且逗号后面的值是B表示我们想查看列B的值。
打印df.loc [:,'B']
索引和选择数据-.loc
.iloc主要是整数位置(来自0于length-1所述轴线的),但也可以用布尔阵列使用。熊猫提供了多种方法来获取纯粹基于整数的索引。
#导入pandas库并将别名作为pd
将熊猫作为pd导入
将numpy导入为np
df1 = pd.DataFrame(np.random.randn(8,3),列= ['A','B','C'])
#选择特定列的所有行
打印(df1.iloc [:8])
索引和选择数据-.iloc
在上面的小程序中,.iloc给出整数索引,我们可以按索引值访问row和column的值。要知道我们要切片的特定行和列,并且索引是基于整数的,因此我们使用.iloc。第一行是要获得前四行的输出,第二行是要找到B至C的两到三行和列索引的输出。
#整数切片
打印(df1.iloc [:4])
打印(df1.iloc [2:4,1:3])
索引和选择数据-.iloc
.ix用于标签和基于整数的。除了基于纯标签和基于整数的方法外,Pandas还提供了一种混合方法,用于使用.ix()运算符进行选择和子集化。
将熊猫作为pd导入
导入numpy为np df2 = pd.DataFrame(np.random.randn(8,3),列= ['A','B','C'])#整数切片
打印(df2.ix [:4])
图片发布
query()方法
DataFrame对象具有query()方法,该方法允许使用表达式进行选择。您可以获得框架的值,其中b列的值介于a列和c列之间。
例如:
#创建10行3列的数据框
df4 = pd.DataFrame(np.random.rand(10,3),columns = list('abc'))
df4
图片发布
以下代码中给出的条件是检查x小于b且b小于c。如果两个条件都成立,则打印输出。在这种情况下,只有一行通过了该条件。
图片发布
给查询函数相同的条件。如果我们将这两个条件进行比较,则查询语法比数据帧语法简单。
#with query()
df4.query('(x <b)&(b <c)')
图片发布
资料重复
如果要标识和删除数据框中的重复行,则有两种方法会有所帮助:重复和drop_duplicates。
重复:返回布尔矢量,其长度为行数,并指示行是否重复。
drop_duplicates:删除重复的行。
使用基于整数的索引和基于标签的列名称在行和列中创建数据框。
df5 = pd.DataFrame({'a':['one','one','two','two','two']],
                    'b':['x','y','x','y','x'],
                    'c':np.random.randn(5)})
df5
图片发布
我们以熊猫为单位生成了一个数据框,索引中的值基于整数。并生成三列a,b和c。在这里,我们检查了是否重复行的布尔值。对于新对象的每次第一次,布尔值都将变为False,然后在此之后重复,则此对象重复将变为True。
df5.duplicated('a')
图片发布
两个函数的输出之间的区别,一个是给输出提供布尔值,另一个是删除数据集中的重复标签。
df5.drop_duplicates('a')
图片发布
结论:
有很多方法可以从DataFrame中提取元素,行和列。Pandas中有一些索引方法,可帮助您从DataFrame中选择数据。到目前为止,这些是索引数据的最常用方法。在.loc与.iloc索引使用索引操作符来进行选择。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Dataframe pandas Series python Serie

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-23 22:00