CSV字典过滤CSV文件

pn9klfpd  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(90)

我使用Python 3.6与pandas和numpy。我有两个CSV文件,都不包含任何标题(所以索引是内置的)。一个是包含计算机名的一列列表:PC001 PC002 PC003.
另一个文件是系统的导入文件。这是一个CSV文件。PC名称是第三列:addprinter,terminal,PC001,something,something addprinter,terminal,PC002,something,something addprinter,terminal,PC003,something,something.
现在,导入文件包含数千个条目,我只需要将行复制到一个新的csv(命名为to-be-imported.csv),其中包含来自hostnames.csv的PC名称
我在这里用这个来“接近”:

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

不幸的是,它只会列出在巨大的CSV中找到的PC名称,而不会列出包含名称的行(因此可以很容易地在新的CSV中写入)。
我知道这对我来说是进步,但我也相信我会学到很多。所以希望有一个善良的灵魂在那里理解我想做什么,并分享一些指导

kxxlusnw

kxxlusnw1#

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

相关问题