mercredi 4 avril 2018

Creating a list of documents using if-else in python

I have a data set which contains keywords,rank_organic and document column. For every keyword there are documents for rank_organic = 1,2,3,4 or 5. But for some keywords I have some rank_organic field missing.

For example: For keyword A, I have rank_organic = 1,2,4,5 and 3 is missing. I want to create a list of documents of length 5 where for rank_organic=3, null or space should come and for rest rank the documents should come. Below is the code which I am using but it giving error. Please help me how to achieve it.

def key_doc(data):
    lis=[]
    for i in pd.unique(data['keyword']):
        a = data.loc[data['keyword'].isin([i])]
        j = i.replace(" ","_")

        j =  Node(i, parent= Testing,
                   documents=[(a.loc[(a['rank_organic']==1)])['vocab'].tolist()[0]
                            ,(a.loc[(a['rank_organic']==2)])['vocab'].tolist()[0]
                            ,(a.loc[(a['rank_organic']==3)])['vocab'].tolist()[0]
                            ,(a.loc[(a['rank_organic']==4)])['vocab'].tolist()[0]
                            ,(a.loc[(a['rank_organic']==5)])['vocab'].tolist()[0]])

#        print j.name, len(j.documents)
        lis.append(j)
    return lis

ERROR: ,(a.loc[(a['rank_organic']==3)])['vocab'].tolist()[0]

IndexError: list index out of range

Aucun commentaire:

Enregistrer un commentaire