代码之家  ›  专栏  ›  技术社区  ›  Minions

如何将TQDM与MAP一起用于数据帧

  •  2
  • Minions  · 技术社区  · 6 年前

    我可以使用带有映射函数的TQDM进度条来循环数据帧/序列行吗?

    具体来说,对于以下情况:

    def example(x):
        x = x + 2
        return x
    
    if __name__ == '__main__':
        dframe = pd.DataFrame([{'a':1, 'b': 1}, {'a':2, 'b': 2}, {'a':3, 'b': 3}])
        dframe['b'] = dframe['b'].map(example)
    
    1 回复  |  直到 6 年前
        1
  •  5
  •   Teoretic    6 年前

    由于TQDM与熊猫的集成,您可以使用 progress_map 函数而不是 map 功能。

    注释 :要使此工作,您应该添加 tqdm.pandas() 行到您的代码。

    所以试试这个:

    from tqdm import tqdm
    
    def example(x):
        x = x + 2
        return x
    
    tqdm.pandas()  # <- added this line
    
    if __name__ == '__main__':
        dframe = pd.DataFrame([{'a':1, 'b': 1}, {'a':2, 'b': 2}, {'a':3, 'b': 3}])
        dframe['b'] = dframe['b'].progress_map(example)  # <- progress_map here
    

    这里是 documentation reference :

    (添加后) TQDM )你可以使用 progress_apply 而不是 apply 进度图 而不是 地图