Должен передавать DataFrame с логическими значениями только после 71 итерации - PullRequest
0 голосов
/ 25 ноября 2018

Я проверил сообщения и не нашел решения своей проблемы.Я получаю сообщение об ошибке в теме после того, как код работает нормально.

Я просто пытаюсь добавить строку в фрейм данных держателя, который добавляет только те строки, которые не похожи на ранее добавленные строки.В запросе вы увидите, что для друга проверяется значение 'Target', а для Target - 'Friend'.

Перед тем, как выдать ошибку, он повторяется 71 раз.'cur' - это итератор, который не включен в этот раздел кода.Вот код:

same = df[(df['Source']==cur) & (df['StratDiff']==0)]
holder = pd.DataFrame(index=['pbp'],columns=['Source', 'Target', 'Friend', 'SS', 'TS', 'FS'])
holder.iloc[0:0]
i=1
for index, row in same.iterrows():
    Target = row['Target']
    stratcur = row['SourceStrategy'] 
    strattar = row['TargetStrategy']
    sametarget = df[(df['Source']==Target)]
    samejoin = pd.merge(same, sametarget,  how='inner', left_on=['Target'], 
                        right_on = ['Target'])
    for index, row in samejoin.iterrows():
        Friend = row['Target']
        stratfriend = row['TargetStrategy_x']
        #print(cur, Friend, Target)
        temp = holder[holder[(holder['Source']==cur) & 
                             (holder['Target']==Friend) & (holder['Friend']==Target)]]
        if temp.isnull().values.any():
            holder.loc[i] = [cur,Target,Friend,stratcur,strattar,stratfriend]
            print(i, cur)
            i=i+1

1 Ответ

0 голосов
/ 26 ноября 2018

Я просто хочу обновить всех.Я смог решить это.Это заняло какое-то время, но проблема была в строке, где я запрашиваю владельца.Это было слишком сложно.Я упростила его в несколько простых запросов.Теперь работает нормально.

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