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

python – 使用不同长度的布尔系列从数据框中选择行

发布时间:2020-12-20 11:58:05 所属栏目:Python 来源:网络整理
导读:我有一个如下所示的数据框: df = pd.DataFrame({"piece": ["piece1","piece2","piece3","piece4"],"No": [1,1,2,3]}) No piece0 1 piece11 1 piece22 2 piece33 3 piece4 我有一个系列,其索引对应于数据框中的“No”列.它将布尔变量赋值给“No”值,如下所示
我有一个如下所示的数据框:

df = pd.DataFrame({"piece": ["piece1","piece2","piece3","piece4"],"No": [1,1,2,3]})

  No   piece
0   1  piece1
1   1  piece2
2   2  piece3
3   3  piece4

我有一个系列,其索引对应于数据框中的“No”列.它将布尔变量赋值给“No”值,如下所示:

s = pd.Series([True,False,True,True])

0     True
1    False
2     True
3     True
dtype: bool

我想从数据框中选择那些行,其中“No”-value为True.这应该导致

No   piece
2   2  piece3
3   3  piece4

我用df [“No”]尝试了很多索引.isin(s),或类似df [s [“No”] == True] ……但它还没有用.

解决方法

我认为您需要将No列中的值映射到true / false条件并将其用于子集化:

df[df.No.map(s)]

#  No   piece
#2  2   piece3
#3  3   piece4
df.No.map(s)

# 0    False
# 1    False
# 2     True
# 3     True
# Name: No,dtype: bool

(编辑:李大同)

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

    推荐文章
      热点阅读