使用Python获取匹配的csv行

2024-06-16 10:40:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于Python与CSV结合的问题。在

我想检查CSV文件中特定列中的特定id,并发现结果连接到输入:


CSV:

CSV FILE


我想做的是当用户输入:b074时,我想返回所有结果:b00ph,b11ph,b22ph,b33ph

如何在Python中做到这一点?有人能帮我编码吗?我从这个开始:

with open('serials.csv') as csvfile:
     csvreader = csv.reader(csvfile, delimiter=' ', quotechar='|')

Tags: 文件csvcsvfile用户id编码withopen
2条回答

因为您似乎想要使用CSV模块,所以可以使用列表理解来过滤CSV文件中的行。下面,将第0列(第[0]行)中的项与键值(b074)进行比较。如果它们匹配,则将第1列添加到列表理解的结果中。在

import csv

key = 'b0074'
with open('serials.csv') as csvfile:
    reader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    result = [row[1].strip() for row in reader if row[0].strip() == key]

>>> result
['b00ph', 'b11ph', 'b22ph', 'b33ph']

这相当于循环的“正常”:

^{pr2}$

使用pandas可以轻松实现这一点:

import pandas as pd
df = pd.read_csv(csvfile, sep=' ', quotechar='|')
df[df['Row1'] == 'b0074']

将筛选数据帧并返回“Row1”具有该值的所有行

相关问题 更多 >