用于过滤 CSV 文件的 CSV 字典

问题描述 投票:0回答:1

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

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

现在导入文件包含数千个条目,我只需要将该行复制到一个新的 csv(将其命名为 to-be-imported.csv),其中包含我们称之为 hostnames.csv 的电脑名称

我在这里使用这个“接近”了:

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

不幸的是,它只会列出在巨大的 csv 中找到的电脑名称,但不会列出包含该名称的行(因此可以轻松地将其写入新的 csv)。

我知道这对我来说是进步,但我也相信我会学到很多东西。所以希望有一个善良的人理解我想做的事情并分享一些指导

python pandas csv numpy export-to-csv
1个回答
2
投票

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 文件。

© www.soinside.com 2019 - 2024. All rights reserved.