【发布时间】:2018-04-04 11:22:36
【问题描述】:
我有一个包含关键字、rank_organic 和文档列的数据集。对于每个关键字,都有 rank_organic = 1、2、3、4 或 5 的文档。但对于某些关键字,我缺少一些 rank_organic 字段。
例如:对于关键字 A,我有 rank_organic = 1,2,4,5 并且缺少 3。我想创建一个长度为 5 的文档列表,其中 rank_organic=3,null 或空格应该出现,其余文档应该出现。 下面是我正在使用的代码,但它给出了错误。请帮助我如何实现它。
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
错误:
,(a.loc[(a['rank_organic']==3)])['vocab'].tolist()[0]
IndexError: list index out of range
【问题讨论】:
标签: python python-3.x pandas for-loop if-statement