必须在71次迭代后才传递带有布尔值的DataFrame

时间:2018-11-25 15:47:57

标签: python pandas dataframe append valueerror

我检查了帖子,但没有找到解决我问题的方法。代码正常运行后,出现了我在主题中输入的错误。

我只是试图将一个行添加到一个holder数据帧,该数据帧仅添加与先前添加的行不同的行。您会在查询中看到该好友已针对“目标”进行了检查,而针对目标已针对“朋友”进行了检查。

迭代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 :(得分:0)

我只想更新所有人。我能够解决这个问题。花了一段时间,但问题出在我查询持有人的地方。这太复杂了。我将其简化为多个更简单的查询。现在工作正常。