我正在使用带有 pandas 和 numpy 的 Python 3.6。 我有两个 CSV 文件,两者都不包含任何标题(因此索引是内置的)。一种是包含计算机名称的一列列表: 电脑001 PC002 PC003 ...
另一个文件是系统的导入文件。这是一个 csv 文件。电脑名称是第三列: 添加打印机、终端、PC001、某事、某事 添加打印机、终端、PC002、某事、某事 添加打印机、终端、PC003、某事、某事 ...
现在导入文件包含数千个条目,我只需要将行复制到新的 csv(将其命名为 to-be-imported.csv),其中包含来 self 们称之为 hostnames.csv 的电脑名称
我在这里使用这个“接近”:
np.intersect1d(df_main[2],df_key[0])
不幸的是,它只会列出在巨大的 csv 中找到的电脑名称,但不会列出包含该名称的行(因此可以轻松地将其写入新的 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)]
然后将结果写入 CSV 文件 to_csv
.
关于python - 用于过滤 CSV 文件的 CSV 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48645262/