python - 如何迭代列表并通过 pandas 数据框列获取情绪?
问题描述
How to iterate the list and get the sentiments through pandas dataframe column?
我有一个只有一列的数据框,并且该列中只有评论。
data.head()
输出 :
Review
0 If you've ever been to Disneyland anywhere you...
1 Its been a while since d last time we visit HK...
2 Thanks God it wasn t too hot or too humid wh...
3 HK Disneyland is a great compact park. Unfortu...
4 the location is not in the city, took around 1...
我正在使用拥抱面部情绪分类器,例如返回评论的情绪
classifier("My name is mark")
输出是:
[{'label': 'POSITIVE', 'score': 0.9953688383102417}]
仅获取标签:
basic_sentiment = [i['label'] for i in value if 'label' in i]
basic_sentiment
输出是:
['POSITIVE']
如何在分类器的数据框中运行所有给定的注释并返回输出?
sent = []
for i in text[:]:
sentiment = classifier(i)
sent.append(sentiment)
我尝试了上面的代码,但它返回错误
解决方案
我了解您的问题是遍历熊猫数据框,而不仅仅是label
从分类器返回。
如果要返回带有分类器()结果的列表,则需要:
sent = []
for i in range(len(data)):
sentiment = classifier(data.iloc[i,0])
sent.append(sentiment)
range(len(data))
遍历数据框的所有行。data.iloc[i,0]
从第 i 行和第 0 列中获取值(您只有一列,python 是零索引的)。
您还可以将分类器的结果保存在另一列中,这样您就有一个包含两列的数据框,一列包含纯文本,另一列包含情绪:
# initialize new column
data['Sentiment'] = ''
for i in range(len(data)):
data.iloc[i,1] = classifier(data.iloc[i,0])
Wheredata.iloc[i,1]
以第 i 行和索引为 1 的列为目标,这是您的第二列(零索引)Sentiment
。
如果您只想保存label
您需要将该步骤插入代码中,但是您并不清楚您要保存什么。
推荐阅读
- visual-studio-2019 - 为什么我的 Visual Studio 2019 构建的应用程序字体在 Windows 10 中文系统上显示不正确
- substrate - 如何在移动应用程序中登录基板?
- javafx - JavaFX 表格单个行高,不能设置低值
- php - 如何使用 cron 获取文件内容而不是文件
- node.js - 无法将 axios 数据从 React 传递到 Mongodb
- shell - 删除图案上方的线
- python - 我们如何访问具有相同名称的python中的方法和变量?
- go - Go 中通过 new(Type) 和 &Type{} 分配内存的区别
- r - 在 GGPLOT2 中的条形顶部添加计数
- android - 如何在 Jetpack Compose 中创建国家代码选择器