用于过滤 CSV 文件的 CSV 字典

CSV Dictionary to filter a CSV file

我正在使用 Python 3.6 与 pandas 和 numpy。 我有两个 CSV 文件,均不包含任何标题(因此内置索引)。一个是包含计算机名称的单列列表: PC001 PC002 PC003 ...

另一个文件是系统的 import-file。这是一个csv-file。电脑名称是第三列: 添加打印机,终端,PC001,某物,某物 添加打印机、终端、PC002、某物、某物 添加打印机、终端、PC003、某物、某物 ...

现在 import-file 包含数千个条目,我只需要将行复制到新的 csv(将其命名为 to-be-imported.csv),其中包含我们称之为 hostnames.csv

我是"close"用这个来的:

np.intersect1d(df_main[2],df_key[0])

不幸的是,它只会列出在巨大的 csv 中找到的 pc 名称,但不会列出包含该名称的行(因此它可以很容易地写在新的 csv 中)。

我知道这对我来说是为了进步,但我也相信我会学到很多东西。所以希望有好心人理解我想做什么并分享一些指导

正如回答 here,您可以使用 isin:

hosts = pd.read_csv('hostnames.csv', header=None, names=['hosts'], squeeze=True)
df = pd.read_csv('import.csv', header=None, names=['a', 'b', 'host', 'c'])
result = df.loc[df['host'].isin(hosts)]

然后用 to_csv.

将结果写入 CSV 文件