Python 在包含大数据的csv文件上创建用户输入过滤器

Python 在包含大数据的csv文件上创建用户输入过滤器,python,csv,coding-style,Python,Csv,Coding Style,我有一个程序,可以打开和读取csv格式的文件,其中包含大量数据,例如: State Crime type Occurrences Year CALIFORNIA ROBBERY 12 1999 CALIFORNIA ASSAULT 45 2003 NEW YORK ARSON 9 1999 CALIFORNIA ARSON 21 2000 TEXAS THEFT

我有一个程序,可以打开和读取csv格式的文件,其中包含大量数据,例如:

State      Crime type Occurrences Year 

CALIFORNIA ROBBERY    12          1999
CALIFORNIA ASSAULT    45          2003
NEW YORK   ARSON      9           1999
CALIFORNIA ARSON      21          2000
TEXAS      THEFT      30          2000
OREGON     ASSAULT    10          2001
我需要根据用户输入创建3个过滤器。例如:

Enter State:
Enter Crime Type:
Enter Year:
如果我进入:

Enter State: CALIFORNIA
Enter Crime: ASSAULT
Enter Year:  2003

Crime Report
State      Crime type Occurrences Year
CALIFORNIA ASSAULT    45          2003
这是必须的


我不知道如何解决这个问题。。我只能打开csv格式的数据文件并将其读入Python中的一个表中,该表将只打印出每一行。但是,我需要合并搜索过滤器以缩小结果范围,如上图所示。有人熟悉这个吗?感谢大家的帮助。

Python中的Pandas库允许您查看和操作csv数据。以下解决方案导入pandas库,使用
read_csv()
函数读取csv并将其加载到数据帧中,然后请求输入值,记住状态和犯罪应为字符串值并转换为
str
,年份应为整数并转换为
int
,然后应用一个简单的查询来过滤数据帧中需要的结果。我们构建这个查询时要记住所有三个条件都应该满足,并且输入字符串也可以是小写的

In [125]: import pandas as pd
In [126]: df = pd.read_csv('test.csv')

In [127]: df
Out[127]:
        State Crime type  Occurrences  Year
0  CALIFORNIA    ROBBERY           12  1999
1  CALIFORNIA    ASSAULT           45  2003
2    NEW YORK      ARSON            9  1999

In [128]: state = str(input("Enter State: "))
Enter State: California

In [129]: crime_type = str(input("Enter Crime Type: "))
Enter Crime Type: robbery

In [130]: year = int(input("Enter Year: "))
Enter Year: 1999

In [131]: df.loc[lambda x:(x['State'].str.lower().str.contains(state.lower()))
     ...: & (x['Crime type'].str.lower().str.contains(crime_type.lower())) & (x
     ...: ['Year'] == year)]
Out[131]:
        State Crime type  Occurrences  Year
0  CALIFORNIA    ROBBERY           12  1999

一些线索:1。获取用户输入。2.打开CSV文件,逐行读取,检查每个文件的内容是否与用户指定的值匹配。您好,非常感谢您的帮助。有没有一种不用熊猫模块就可以做到这一点的方法?我是编写Python的新手,我想在不使用模块的情况下解决这个问题。欢迎您!如果这已经回答了这个问题,请考虑接受/接受作为答案。我现在正在测试代码,但我想知道是否有一种方法可以使用用户输入过滤器缩小csv文件的搜索结果Python的标准库有一个模块可以帮助您处理csv文件。使用熊猫,您可以查看数据。如果您使用的是大数据,建议使用pandas而不是csv模块。