Pandas 如果特定列包含特定值或字符串,Python将保留行
我对python非常了解。我在搜索在线资源时没有找到问题的具体答案。话虽如此,如果你能给出一些提示,那就太好了 我有一个df示例,如下所示: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
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循环只是对实际问题的一种尝试性解决方案。我建议直接询问实际问题,而不是尝试解决。谢谢你的帮助。