Я пытаюсь взять min
с, max
с, mean
с и т. Д. Столбцов моей Pandas df (все числовые значения какого-либо вида), и не похоже, что методы Pandasбыстрый.Кажется, что если я впервые нажму на .values
, время выполнения этих операций значительно улучшится.Является ли это желаемым поведением (имеется в виду, что Панды делают что-то глупое или намеренное? Возможно, я использую дополнительную память, нажимая на нее .values
, или я делаю предположения и / или облегчаю это каким-то образом, что не является данностью ...).
«Доказательства» неожиданного поведения:
df = pd.DataFrame(np.random.randint(0,1000,size=(100000000, 4)), columns=list('ABCD'))
start = time.time()
print(df['A'].min())
print(time.time()-start)`
# 0
# 1.35876178741
start = time.time()
df['A'].values.min()
print(time.time()-start)
# 0
# 0.225932121277
start = time.time()
print(np.mean(df['A']))
print(time.time()-start)
# 499.49969672
# 1.58990907669
start = time.time()
print(df['A'].values.mean())
print(time.time()-start)
# 499.49969672
# 0.244406938553