加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在pandas中按索引选择多个行部分

发布时间:2020-12-20 12:11:07 所属栏目:Python 来源:网络整理
导读:我有大型DataFrame与GPS路径和一些属性.路径的一些部分是我需要分析的部分.我想仅将这些部分子集化为新的DataFrame.我可以在当时对一个部分进行子集化,但我们的想法是将它们全部包含在原始索引中. 问题类似于: import pandas as pd df = pd.DataFrame({'A':
我有大型DataFrame与GPS路径和一些属性.路径的一些部分是我需要分析的部分.我想仅将这些部分子集化为新的DataFrame.我可以在当时对一个部分进行子集化,但我们的想法是将它们全部包含在原始索引中.

问题类似于:

import pandas as pd 
df = pd.DataFrame({'A':[0,1,2,3,4,5,6,7,8,9],'B':['a','b','c','d','e','f','g','h','i','j']},index=range(10,20,))

我希望得到类似的东西:

cdf = df.loc[[11:13] & [17:20]] # SyntaxError: invalid syntax

期望的结果:

A  B
11  1  b
12  2  c
13  3  d
17  7  h
18  8  i
19  9  j

我知道这个例子很容易用cdf = df.loc [[11,12,13,17,18,19],]但是在最初的问题中我有数千行和一些条目已被删除,所以列出点是相当的不是一种选择.

解决方法

concat的一个可能的解决方案:

cdf = pd.concat([df.loc[11:13],df.loc[17:20]])
print (cdf)
    A  B
11  1  b
12  2  c
13  3  d
17  7  h
18  8  i
19  9  j

另一种范围解决方案:

cdf = df.ix[list(range(11,14)) + list(range(17,20))]
print (cdf)
    A  B
11  1  b
12  2  c
13  3  d
17  7  h
18  8  i
19  9  j

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读