我有两个较大的csv文件,我想比较csv1中的column1和csv2中的column1。我可以使用Python List来完成此操作,其中我读取了csv1并在list1中抛出column1,对csv2执行了相同的操作,然后检查list1中的元素是否存在于list2中
olist = []
def oldList(self):
for row in self.csvreaderOld:
self.olist.append(row[1])
nlist = []
def newList(self):
for row in self.csvreaderNew:
self.nlist.append(row[1])
def new_list(self):
return [item for item in self.olist if item not in self.nlist]
代码工作,但可以很长时间来完成。我试图看看我是否可以使用字典代替,看看是否会更快,所以我可以比较关键字在字典1存在于字典2,但到目前为止还没有成功,由于我的知识有限。
3条答案
按热度按时间brtdzjyr1#
如果它是一个大的CSV文件,或者您打算继续使用表格,我建议使用 * Pandas * 模块。
老实说,即使它是一个小文件,或者您不打算继续使用表格,* Pandas * 也是一个优秀的模块。
据我所知(我可能搞错了),对于读取CSV文件,* Pandas * 是最快的库之一。
检查Pandas系列中的项目时,使用
.values
非常重要(当您提取DataFrame中的列时,您将得到Pandas系列)您还可以使用
list(df["column1"])
和How to determine whether a Pandas Column contains a particular value中建议的其他方法来确定某个值是否包含在panda列中例如:
Dataframe 将被
而
new_line
将返回[5]
eit6fx6z2#
你可以把两个文件都读入对象,然后在一个循环中进行比较,下面是一个简短的代码片段(不是类实现):
sf6xfgos3#
首先,更改阅读CSV文件的方式,如果只需要一列,请在
usecols
中注明,如下所示第二,如果不是逐行比较,可以使用setdifference,如下所示