首页 > 解决方案 > 有条件地提取数据帧行时列表索引超出范围

问题描述

提取部分令牌数据帧会引发列表索引超出范围错误。

编辑以显示完整代码

tokens['len'] = tokens['token_raw'].apply(lambda x: len(x))
txt = "this is a sample text"
input_df = pd.DataFrame(txt.lower().split(), columns=['input_text'])
input_df = input_df['input_text'].apply(lambda x: flag_nonword(x))

def flag_nonword(w):
    input_len = len(w)+3
    tokens_ext = tokens.loc[tokens['len'] < input_len ]
    tokens_ext.sort_values('len',ascending=True, inplace = True)
    tokens_ext['ed'] = tokens_ext['token_raw'].apply(lambda x: 
nltk.edit_distance(w,x))
    tokens_ext.sort_values(by=['ed', 'freq'], ascending=[True, False])
    return list(tokens_ext.iloc[:6,0])

标签: pythonpandas

解决方案


或者两个ilocs:

def flag_nonword(w):
    input_len = len(w)+3
    tokens_ext = tokens.loc[tokens['len'] < input_len] 
    return list(tokens.iloc[:,0].iloc[:6])

推荐阅读