Pandas действительно замечательный, но я действительно удивлен тем, насколько неэффективно это извлекать значения из Pandas.DataFrame. В следующем примере игрушек даже метод DataFrame.iloc более чем в 100 раз медленнее, чем словарь.
Вопрос: Является ли урок здесь только тем, что словари - лучший способ поиска ценностей? Да, я понимаю, именно это и было сделано. Но я просто задаюсь вопросом, есть ли что-то, что мне не хватает в производительности поиска DataFrame.
Я понимаю, что этот вопрос более "размышляет", чем "спрашивает", но я соглашусь с ответом, который дает представление или точку зрения на это. Спасибо.
import timeit
setup = '''
import numpy, pandas
df = pandas.DataFrame(numpy.zeros(shape=[10, 10]))
dictionary = df.to_dict()
'''
f = ['value = dictionary[5][5]', 'value = df.loc[5, 5]', 'value = df.iloc[5, 5]']
for func in f:
print func
print min(timeit.Timer(func, setup).repeat(3, 100000))
value = dictionary [5] [5]
0,130625009537
value = df.loc [5, 5]
+19,4681699276
value = df.iloc [5, 5]
+17,2575249672