объединение панелей данных панд с использованием индекса против использования эффективности данных - PullRequest
0 голосов
/ 11 декабря 2018

Похоже, слияние с использованием индекса менее эффективно, чем слияние с использованием данных.Я прав?Это имеет какой-то смысл?

import pandas as pd
import numpy as np
import timeit
rows = 10**5
data = np.random.randint(0,100,size=(rows,3))
df1 = pd.DataFrame(data,columns=['A','B','C'])
df1.sort(columns=['A','B'],inplace=True)
data = np.random.randint(0,100,size=(rows,3))
df2 = pd.DataFrame(data,columns=['A','B','C'])
df2.sort(columns=['A','B'],inplace=True)
times = 10
print 'merge by data: {}'.format(
    timeit.timeit(
        stmt="df1.merge(df2,on=['A','B'],how='outer')",
        setup='from __main__ import df1,df2',number=times)/times)

df1.set_index(['A','B'],inplace=True)
df2.set_index(['A','B'],inplace=True)

print 'merge by index: {}'.format(
    timeit.timeit(
        stmt="df1.merge(df2,right_index=True,left_index=True,how='outer')",
        setup='from __main__ import df1,df2',number=times)/times)
>>> merge by data: 0.0498219966888
>>> merge by index: 0.133691716194
...