如何索引CSV文件以高效搜索?
How Can I Index a CSV File to Search Efficiently?
我有一个包含超过 40 万行和大约 20 列的 CSV 文件,因此当我寻找特定值时搜索 CSV 文件需要花费太多时间。我想知道如何映射文件,以便高效快速地搜索某个值。
提前致谢!我很乐意回答任何问题!
pandas.read_csv
function makes it fairly easy. Python does have csv reading/writing functions也是。
更新:pandas
创建者 a link to a post 在 pandas
.
中进行快速搜索
如果我正在做这样的事情,我会将 cvs 文件加载到 SQLite 数据库文件中,然后使用 SQLite 的 python 绑定来搜索数据。 SQLite 是免费的且使用广泛,因此您可以轻松找到支持、代码片段等。这种方法确实需要一些基本的数据库概念,主要是简单的 SQL 语句。
假设你可以将整个东西存储在 RAM 中(即加载它)我会使用 pandas.
import pandas as pd
csv_loc = 'C:/yourcsv.csv'
df = pd.read_csv(csv_loc, sep=',', header=0) #http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
df['name'] # would select a column called name
# This would show observations which start with STARBUC
match = df['name'].str.contains('(^STARBUC)')
print(df['name'][match].value_counts())
我有一个包含超过 40 万行和大约 20 列的 CSV 文件,因此当我寻找特定值时搜索 CSV 文件需要花费太多时间。我想知道如何映射文件,以便高效快速地搜索某个值。
提前致谢!我很乐意回答任何问题!
pandas.read_csv
function makes it fairly easy. Python does have csv reading/writing functions也是。
更新:pandas
创建者 a link to a post 在 pandas
.
如果我正在做这样的事情,我会将 cvs 文件加载到 SQLite 数据库文件中,然后使用 SQLite 的 python 绑定来搜索数据。 SQLite 是免费的且使用广泛,因此您可以轻松找到支持、代码片段等。这种方法确实需要一些基本的数据库概念,主要是简单的 SQL 语句。
假设你可以将整个东西存储在 RAM 中(即加载它)我会使用 pandas.
import pandas as pd
csv_loc = 'C:/yourcsv.csv'
df = pd.read_csv(csv_loc, sep=',', header=0) #http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
df['name'] # would select a column called name
# This would show observations which start with STARBUC
match = df['name'].str.contains('(^STARBUC)')
print(df['name'][match].value_counts())