import pandas as pd import numpy as np def generate_df(size, id_dtype:str='int'): '''Create a dummy df with id and a random value''' df = pd.DataFrame({'id': [v for v in range(size)], 'value': np.random.randint(0,size,size)}) df.id = df.id.astype(id_dtype) return df a = generate_df(5,id_dtype='int') b = generate_df(5,id_dtype='int32[pyarrow]') a.merge(b, on='id')