python和模糊,熊猫



我有两个CSV,其中可以通过一列中的值匹配行(经过此列进行了一些调整之后)。匹配结束后,我想从它们中拿出一些价值,并制作一个新的组合行。我想到了使用CSV.Dictreader的简单脚本,然后是双

for row1 in csv1:
for row2 in csv2:
    if row1['someID'] == row2['someID]:
        newdict = ... etc

但是,1个文件是900万行,另一行是500k行。因此,我的代码将进行4.5 * 10^12迭代。因此,我的问题是:什么是匹配它们的快速方法?重要的:它们与之匹配的"某种"都不是CSV唯一的。我想要每场比赛的其他行。因此,如果出现"某个"在CSV1和3次CSV2中,我希望在最终结果中使用此" Someid" 6行。

尝试以下操作:而不是迭代,而是在两个文件上使用pandas.read_csv(),然后在 someID上合并它们。https://pandas.pydata.org/pandas-docs/stable/generated/pandas.dataframe.merge.html

例如:

import pandas as pd
csv1 = pd.read_csv(path1)
csv2 = pd.read_csv(path2)
merged = csv1.merge(csv2, on='someID')
merged['new_column'] = ...

pandas操作在整个numpy阵列上都比在元素级别迭代要快得多。

最新更新