如何使用panda迭代每行中的单词



我有一个数据帧,如下所示

df = pd.DataFrame({'text': ["Hi how are you","I am fine","I love you","I hate you"],
'tokens':[('Hi','how','are','you'),('I','am','fine'),('I','love','you'),('I','hate','you')]})

我想得到每个代币的pos标签

for tok in df['tokens'].iterrows():
print(token, token.pos_)

请注意,这里的pos_意味着它是来自nlp域的词性标签

然而,我得到一个错误

可以帮助我如何迭代熊猫栏中的每一项吗?

您得到的是'Series' object has no attribute 'iterrows',因为您使用的是列df['tokens'],它给出了一个系列(仅1维(,因此没有iterrows方法。

使用你的代码你可以做:

import pandas as pd
df = pd.DataFrame({'text': ["Hi how are you","I am fine","I love you","I hate you"],
'tokens':[('Hi','how','are','you'),('I','am','fine'),('I','love','you'),('I','hate','you')]})

for index, values in df.iterrows():
pos = 1
for x in values[1]:
print(pos, x)
pos += 1

或者,你可以使用(类似于@AnuraDabas的评论(:

df['pos tag'] = df['tokens'].apply(lambda x:list(range(len(x)+1))[1:])

您只需要df.iat[2,1][1];(

最新更新