我有一个数据帧,如下所示
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]
;(