Получение следующего элемента в pandas фрейме данных - PullRequest
0 голосов
/ 22 марта 2020

Допустим, у меня есть список позиций индекса:

index_position = [1,3,5]

И такой фрейм данных:

df = pd.DataFrame({'A': [0,1,2,3,4,5,6,7,8,9,10]})

Я пытаюсь выполнить итерацию по списку. и добавьте расположение элемента в df к следующему расположению элемента в df способом, подобным следующему:

for i in index_position:
    sum = df['A'].iloc[i] + df['A'].iloc[i+1]
    print(sum)

, что приведет к печати 4 и 8 , Конечно, i+1, к сожалению, не дает мне следующий элемент в списке, он буквально добавляет 1 к элементу.

Ответы [ 3 ]

2 голосов
/ 22 марта 2020

Разве этого не достаточно?

sum = df['A'][i] + df['A'][i+1]
1 голос
/ 22 марта 2020

Попробуйте pd.DataFrame.rolling:

>>> print(*df.loc[index_position, 'A'].rolling(2).sum().dropna(), sep='\n')
4.0
8.0

Для других данных:

>>> df = pd.DataFrame({'A': range(0,30,3)})
>>> df
    A
0   0
1   3
2   6
3   9
4  12
5  15
6  18
7  21
8  24
9  27

>>> index_position = [1, 3, 5]

>>> print(*df.loc[index_position,'A'].rolling(2).sum().dropna(), sep='\n')
12.0
24.0
0 голосов
/ 22 марта 2020

Вы можете enumerate через список, чтобы получить индекс (или текущий счетчик).

for count, index in enumerate(index_position):
    print('count: ', count)
    print('index: ', index)

Это приведет к:

>> count: 0
>> index: 1

>> count: 1
>> index: 3

>> count: 2
>> index: 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...