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

Pandas 如果特定列包含特定值或字符串,Python将保留行,pandas,dataframe,for-loop,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 10

我对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

names  exam1  exam2
0  Joseph     68     98
1    Kate     70     88
我想做一个for循环来迭代行,如果
names
列等于
Joseph
Kate
,则得到一个新的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

names  exam1  exam2
0  Joseph     68     98
1    Kate     70     88
我知道有一种方法如下,但我想通过for循环来实现

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

提前感谢您。

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

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

这是一个带有明显错误的问题。for循环只是对实际问题的一种尝试性解决方案。我建议直接询问实际问题,而不是尝试解决。谢谢你的帮助。