假设我有一个df:
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并附有:
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条件吗?
我试着理解列表,但它并没有发挥应有的作用:
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']发布于 2020-02-28 15:08:55
你也可以直接利用熊猫的数据掩蔽技术达到最终的效果,
尝尝这个,
list_n = df["Surname"][~df["Age"].isin(list_age)].to_list()当您执行>>>print(list_n)时
输出:
['Black', 'Ferrari', 'Red', 'Man']发布于 2020-02-28 14:59:17
list_n = [surname for age, surname in zip(df.Age, df.Surname)
if age not in {10, 11, 13}]发布于 2020-02-28 14:59:26
list_n = [surname for age, surname in zip(df.Age, df.Surname) if age not in list_age]
https://stackoverflow.com/questions/60454205
复制相似问题