В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Вы можете использовать lookup
, например
>>> i = pd.Series(['a', 'a', 'b', 'c', 'b'])
>>> df.lookup(i.index, i.values)
array([ 1, 4, 8, 12, 14])
, где i.index
может отличаться от range(len(i))
, если вы хотите.
Вы всегда можете использовать понимание списка:
[df.loc[idx, col] for idx, col in enumerate(['a', 'a', 'b', 'c', 'b'])]
Для больших наборов данных вы можете использовать индексирование в базе данных numpy, если вы готовы преобразовать имена столбцов в числовой индекс (простой в этом случае):
df.values[arange(5),[0,0,1,2,1]]
out: array([ 1, 4, 8, 12, 14])
Это будет быть намного более эффективными, чтобы понимать список или другие явные итерации.
df.unstack().loc[zip(i.values,i.index)] = [1,2,3,4,5]
. И вы должны соответствовать длине с обеих сторон (вы также можете выбрать этот синтаксис); см. эту проблему: github.com/pydata/pandas/issues/7138 – Jeff 18 July 2014 в 22:57pd.Series(df.lookup(i.index, i.values), index=i.index)
– user394430 29 November 2016 в 19:30