繁体   English   中英

使用Python提取CSV文件行

[英]CSV File Row extraction using Python

我的目标是要有一个用户,在tkinter GUI中输入一个值。 然后,此值用于提取包含用户输入值的行。 test.CSV文件的示例;

在此处输入图片说明

用户输入为1000,因此
将提取[(field1 cat),(field2 fred),(field3 apple),(field4 1000),(field5 car)]

我已经通过使用以下代码实现了CSV查找

import csv

with open('test.csv') as f:
    reader =csv.DictReader(f)
    rows = [row for row in reader if row['field4'] =='1000']
for row in rows:
    print (row)

下一步是只打印我需要的列,即不是所有列都是必需的:

我只想要[(field1 cat), (field3 apple)] ,可以使用上面的代码来实现,还是在Python中有更好的Vlookup()方法?

Python中用于处理表的标准工具是pandas ,其核心工具是一个称为DataFrame的对象。

import pandas as pd

df = pd.read_csv("test.csv")
print(df[["field1", "field2"]][df["field4"]==1000])

更新:根据注释中的要求,您可能希望也可能不希望打印标题。 通过显式调用.to_string()的方法, DataFrame ,你可以避开很容易地。

print(df[["field1", "field2"]][df["field4"]==1000].to_string(header=False))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM