我可以在使用map函数遍历数据框/系列行时,使用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)
我可以在使用map函数遍历数据框/系列行时,使用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)
由于tqdm与pandas的集成,你可以使用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
这里是文档参考:
(添加
tqdm.pandas()
后)... 你可以使用progress_apply
代替apply
和progress_map
代替map