Можем ли мы накапливаться в массиве с использованием значений в столбцах панд данных в векторизованном виде? - PullRequest
0 голосов
/ 02 февраля 2019

Предположим, что у нас есть следующий кадр данных pandas:

test_df =  pd.DataFrame({'start':[1,2,3,4], 'end':[2,3,4,5] ,'signal':[1,2,3,4]},columns=['start','end','signal'])

Можем ли мы обновить массив numpy векторизованным способом?

nparray = np.zeros(4)

Используя метод вычисления ниже?

def compute(nparray,start,end,signal):
    nparray[start:end] += signal

Сейчас выдается следующая ошибка:

    nparray[start:end] += signal
TypeError: slice indices must be integers or None or have an __index__ method

1 Ответ

0 голосов
/ 02 февраля 2019

1-ый Создайте свой диапазон, затем сделайте его списком, затем проблема станет проблемой unnesting

df['key']=[list(range(x,y))for x , y in zip(df.start,df.end)]
unnesting(df,['key']).groupby('key').signal.sum()
key
1    1
2    2
3    3
4    4
Name: signal, dtype: int64

unnesting(df, ['key']).groupby('key').signal.sum().values
array([1, 2, 3, 4], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...