Этот вопрос о недавнем пакете данных h2o.Я хочу заменить код pandas этой библиотекой для повышения производительности.
Вопрос прост: мне нужно разделить / суммировать / умножить / вычесть целый кадр или различные выбранные столбцы на число.
В пандах, чтобы разделить все столбцы, кроме первого, на 3, можно написать:
import pandas as pd
import numpy as np
df = pd.DataFrame({
"C0": np.random.randn(10000),
"C1": np.random.randn(10000)
})
df.iloc[:,1:] = df.iloc[:,1:]/3
В пакете с данными можно сделать это только для одного выбранного столбца:
import datatable as dt
from datatable import f
df = dt.Frame(np.random.randn(1000000))
df[:, "C1"] = dt.Frame(np.random.randn(1000000))
for i in range(1,df.shape[1]): df[:,i] = df[:,f[i]/3]
На данный момент, в Python 3.6 (я не знаю о версии 3.7), FrameProxy f не допускает срезы.Я просто спрашиваю, есть ли лучший способ выполнения такого рода арифметических операций, чем цикл, я не нашел его в Документация .