首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中以列表为条件的IF语句内迭代

在Python中以列表为条件的IF语句内迭代
EN

Stack Overflow用户
提问于 2020-02-28 14:56:12
回答 3查看 47关注 0票数 0

假设我有一个df:

代码语言:javascript
复制
     Name    Surname  Age
0    Alex    Jackson   10
1     Bob      Black   12
2  Clarke  Flingston   13
3  Claude      White   11
4   Julia     Waters   10
5  Robert    Ferrari   12
6    Anna        Red    9
7   David       Blue   10
8    Luke        Man   12

并附有:

代码语言:javascript
复制
list_n = []
for age, surname in zip(df.Age, df.Surname):
    if (age != 13 and 
        age != 11 and 
        age != 10):
        list_n.append(surname)

list_n
['Black', 'Ferrari', 'Red', 'Man']

我得到了一份姓氏的清单,不包括有一定年龄的姓。可以用年龄列表迭代if条件吗?

我试着理解列表,但它并没有发挥应有的作用:

代码语言:javascript
复制
list_age = [13,11,10]
list_n = []

for age, surname in zip(df.Age, df.Surname):
    [list_n.append(surname) for x in list_Age if age != x]

list_n
['Jackson', 'Jackson',  'Black',  'Black',  'Black', 'Flingston',
 'Flingston',  'White',  'White',  'Waters',  'Waters',  'Ferrari',
 'Ferrari',  'Ferrari',  'Red',  'Red',  'Red',  'Blue',  'Blue',
 'Man',  'Man',   'Man']
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-28 15:08:55

你也可以直接利用熊猫的数据掩蔽技术达到最终的效果,

尝尝这个,

代码语言:javascript
复制
list_n = df["Surname"][~df["Age"].isin(list_age)].to_list()

当您执行>>>print(list_n)

输出:

代码语言:javascript
复制
['Black', 'Ferrari', 'Red', 'Man']
票数 2
EN

Stack Overflow用户

发布于 2020-02-28 14:59:17

代码语言:javascript
复制
list_n = [surname for age, surname in zip(df.Age, df.Surname)
          if age not in {10, 11, 13}]
票数 1
EN

Stack Overflow用户

发布于 2020-02-28 14:59:26

list_n = [surname for age, surname in zip(df.Age, df.Surname) if age not in list_age]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60454205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档