Получить приоритетный ряд данных в формате For L oop Python - PullRequest
0 голосов
/ 17 февраля 2020

Это то, что я считаю простой логикой c, но я какое-то время работал над этим и не понял, так что, надеюсь, кто-то найдет простое решение, которое я пропустил. Я хотел бы иметь возможность получить предыдущую часть кадра данных, используя следующий код, и согласился на решение (row-1) в четвертой строке, но это, очевидно, не сработало.

for row in players_at_start_of_period.iterrows():
    if(row[1]['PERIOD']):
        continue
    elif(row[1]['PERIOD'] - 2) > (row-1)[1]['PERIOD']:
        sub_map.update = {row[1]['TEAM_ID_1']: split_row(row[1]['TEAM_1_PLAYERS']), row[1]['TEAM_ID_2']: split_row(row[1]['TEAM_2_PLAYERS'])}
    else:
        continue

Что я смогу сделать, чтобы получить доступ к значению, которое существует за одну итерацию до текущего значения 'строки'? Спасибо!

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Я не уверен, как ваши данные, но iterrows() уже возвращает индекс, так что вы можете сделать что-то вроде этого:

import pandas as pd
import random
# read the data from the downloaded CSV file.
df = pd.read_csv('https://s3-eu-west-1.amazonaws.com/shanebucket/downloads/uk-500.csv')
# set a numeric id for use as an index for examples.
df['index'] = [random.randint(0,1000) for x in range(df.shape[0])]
for index, row in df.iterrows():
    previous_name = ''
    if index > 0:
        previous_name = df.loc[index - 1]['first_name']
    print(previous_name, df.loc[index]['first_name'])
0 голосов
/ 17 февраля 2020

По моему мнению, мы можем добавить previous_row в l oop, который копирует значение текущей строки непосредственно перед выходом из итерации. Это поможет в следующей итерации сравнить текущую строку с предыдущей строкой.

Дайте мне знать, если эта логика c работает для вас.

...