我有一个数据框,例如
query subject col1
A dog ok
B cat okl
C cat oklp
D frog ok
E cat ok
F fox ok
和 file.txt 例如:
dog
cat
其想法是仅保留 file.txt 中存在模式的行。在这里我应该得到:
query subject col1
A dog ok
B cat okl
C cat oklp
E cat ok
我尝试过:
file = open('file.txt').read()
df=[]
for row in tab['subject']:
if row in file:
row.append(df)
但这似乎不是解决方案,谢谢您的帮助。
Bạn có thể sử dụngdf.loc[]
抓取满足条件的特定行,并且 isin()
检查数据框中的某些内容是否显示在给定列表中。首先列出文件中的条目:
vals = [] # placeholder for our file contents
with open('file.txt', 'r') as a_file:
for line in a_file:
vals.append(line)
接下来选择主题列是从文件中读取的值之一的行。假设您的数据框名为 df
:
new_df = df.loc[df.subject.isin(vals)]
旁注:您几乎永远不想迭代数据帧。也有异常(exception),但一般来说,如果您发现自己在数据帧上迭代(例如 for row in df:
),您可以重写该代码段以利用 Pandas 中的矢量化函数,这些函数是效率更高.
Tôi là một lập trình viên xuất sắc, rất giỏi!