【发布时间】:2018-07-16 15:34:04
【问题描述】:
我正在将 Python 3.6 与 pandas 和 numpy 一起使用。 我有两个 CSV 文件,都没有包含任何标题(所以索引是内置的)。一个是带有计算机名的单列列表: PC001 PC002 PC003 ...
另一个文件是系统的导入文件。它是一个 csv 文件。电脑名称是第三列: addprinter,终端,PC001,东西,东西 addprinter,终端,PC002,东西,东西 addprinter,终端,PC003,东西,东西 ...
现在导入文件包含数千个条目,我只需要将行复制到一个新的 csv(将其命名为 to-be-imported.csv),其中包含来自我们称之为 hostnames.csv 的 pc 名称
我在这里使用这个来“接近”:
np.intersect1d(df_main[2],df_key[0])
不幸的是,它只会列出在巨大的 csv 中找到的电脑名称,但不会列出包含名称的行(因此它可以很容易地写入新的 csv)。
我知道这对我来说是进步,但我也相信我会学到很多东西。所以希望有一个善良的灵魂理解我想做什么并分享一些指导
【问题讨论】:
-
只是为了检查我的理解是否正确-您有两个 .csv 文件,并且您只想从大型导入文件中获取记录,其中 PC 名称在您的 hostnames.csv 文件中,对吗?
-
@Ben 是的,这是正确的。所以在脚本中我做了这样的事情: 加载 df1 hugedatafile.csv 加载 df2 hostnames.csv 检查 hostnames.csv 中的第一个条目(位于第一列)是否与巨大数据文件中的任何内容匹配(huge.csv - 主机名在第三列)。如果是这样,请将完整的行(addprinter、terminal、PC001、...、...)复制/写入新的 csv(to-be-imported.csv)。继续比较和复制(如果匹配)直到文件结束。然后检查 hostnames.csv 中的第二个条目(第 1 列,第 2 行),依此类推,直到检查 hostnames.csv 中的最后一个条目是否匹配。
标签: python pandas csv numpy export-to-csv