如果特定列包含特定值或字符串,Python将保留行

时间:2020-11-03 13:45:55

标签: pandas dataframe for-loop

我在python中非常绿色。我没有找到针对搜索在线资源的问题的具体答案。有了这个说,如果您能提供一些提示,那将是很棒的。

我有一个df的示例,如下所示:

import pandas as pd

df = pd.DataFrame({'names':['Alex','Joseph','Kate'],'exam1': [90, 68, 70], 'exam2': [100, 98, 88]})

print(df)

    names  exam1  exam2
0    Alex     90    100
1  Joseph     68     98
2    Kate     70     88

我想进行一个for循环以遍历行,并且如果names列等于JosephKate来获得新的df,如下所示:

names  exam1  exam2
0  Joseph     68     98
1    Kate     70     88

我知道下面有一种方法,但是我想通过for循环来实现。

list=['Joseph','Kate']
new_df=df[df['names'].isin(list)]

先谢谢您

1 个答案:

答案 0 :(得分:1)

不确定为什么要使用循环,但这是您要使用的方式:

rows = []
for index, row in df.iterrows():
    if row['names'] == 'Kate' or row['names'] == 'Joseph':
        rows.append(row)

new_df = pd.DataFrame(rows)
print(new_df)


    names  exam1  exam2
1  Joseph     68     98
2    Kate     70     88