可以将tqdm用于熊猫的合并操作吗?

时间:2019-05-22 12:30:10

标签: python pandas tqdm

我可以找到tqdm进度条用于group by和其他熊猫操作的示例。但是在合并或连接上找不到任何东西。

是否可以在熊猫上使用tqdm进行合并?

2 个答案:

答案 0 :(得分:1)

tqdm支持熊猫及其内的各种操作。要合并两个大型数据框并显示进度,可以通过以下方式做到这一点:

import pandas as pd
from tqdm import tqdm

df1 = pd.DataFrame({'lkey': 1000*['a', 'b', 'c', 'd'],'lvalue': np.random.randint(0,int(1e8),4000)})
df2 = pd.DataFrame({'rkey': 1000*['a', 'b', 'c', 'd'],'rvalue': np.random.randint(0, int(1e8),4000)})

#this is how you activate the pandas features in tqdm
tqdm.pandas()
#call the progress_apply feature with a dummy lambda 
df1.merge(df2, left_on='lkey', right_on='rkey').progress_apply(lambda x: x)

有关此线程的更多详细信息: Progress indicator during pandas operations (python)

答案 1 :(得分:0)

不能完全确定这是否是您的意思,但可以与熊猫配合使用。您还想实现什么?

import pandas as pd
from tqdm import tqdm

df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],'value': [5, 6, 7, 8]})

for i in tqdm(range(len(df1))):
    df1.merge(df2, left_on='lkey', right_on='rkey')