为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据两个数字之间的索引值从 pandas df 中选择行

如何根据两个数字之间的索引值从 pandas df 中选择行

胡说叔叔 2023-07-18 09:48:59
我将如何选择以下 df 的第 2 行到第 4 行以获得如下所示的所需输出。我尝试这样做df = df.index.between(2,4),但出现以下错误:AttributeError: 'Int64Index' object has no attribute 'between'    col 1   col 2   col 30   1   1   21   5   4   22   2   1   53   1   2   24   3   2   45   4   3   2所需输出    col 1   col 2   col 32   2   1   53   1   2   24   3   2   4
查看完整描述

6 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

您想使用 .iloc[行,列]

df.iloc[2:4, :]


查看完整回答
反对 回复 2023-07-18
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

从数据框中选择行的最简单方法是使用 .iloc[rows, columns] 函数 pandas 例如这里我选择第 2 行到第 4 行


df1=pd.DataFrame({"a":[1,2,3,4,5,6,7],"b":[4,5,6,7,8,9,10]})

df1.iloc[1:3] #


查看完整回答
反对 回复 2023-07-18
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

尝试loc使用标签切片进行索引选择:


df.loc[2:4]

输出:


   col 1  col 2  col 3

2      2      1      5

3      1      2      2

4      3      2      4


查看完整回答
反对 回复 2023-07-18
?
holdtom

TA贡献1805条经验 获得超10个赞

使用以下内容

df.iloc[2:4]


查看完整回答
反对 回复 2023-07-18
?
万千封印

TA贡献1891条经验 获得超3个赞

between不能作用于索引数据类型,只能作用于Seriesto_series因此,如果您想使用布尔掩码,您首先需要使用以下命令将索引转换为序列:

df

#    col1  col2  col3

# 0     1     1     2

# 1     5     4     2

# 2     2     1     5

# 3     1     2     2

# 4     3     2     4

# 5     4     3     2


df[df.index.to_series().between(2,4)]

#    col1  col2  col3

# 2     2     1     5

# 3     1     2     2

# 4     3     2     4


查看完整回答
反对 回复 2023-07-18
?
烙印99

TA贡献1829条经验 获得超13个赞

与洛克


min=2

max=4

between_range= range(min, max+1,1)

df.loc[between_range] 


查看完整回答
反对 回复 2023-07-18
  • 6 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信