如何解决无法遍历 Dataframe 行:值的长度与索引的长度
我不完全确定为什么会出现此错误,因为我目前正在使用一个非常 的简单数据框。这是数据框的示例(日期列是索引):
所以基本上,我想要做的就是一次一行遍历数据框并拉出新闻项目,在其上使用情绪强度分析器并将复合值存储到一个单独的列表中(我将其附加到空列表)。但是,当我运行循环时,它给了我这个错误:
值的长度 (5085) 与索引的长度 (2675) 不匹配
这是我迄今为止的代码示例:
sia = SentimentIntensityAnalyzer()
news_sentiment_list = []
for i in range (0,(df_news.shape[0]-1)):
n = df_news.iloc[i][0]
news_sentiment_list.append(sia.polarity_scores(n)['compound'])
df['News Sentiment'] = news_sentiment_list
我已经使用 FOR 循环以多种不同的方式尝试了循环语句,但我总是返回该错误。老实说,我在这一点上迷路了 =(
编辑:数据框的形状是:(5087,1)
解决方法
目标数据帧是 df
而你在 df_news
上循环,索引可能不一样。您可能需要先合并数据帧。
此外,有一种更简单的方法可以解决您的问题,从而避免循环处理。假设您的数据框 df_news
包含列 News
(如您的表格所示),您只需执行以下操作即可向此数据框添加一列:
sia = SentimentIntensityAnalyzer()
df_news['News Sentiment'] = df_news['News'].apply(lambda x: sia.polarity_scores(x)['compound'])
使用 pandas
时的一般规则是尽可能避免使用 for-loops
,除非您有非常特殊的边缘情况,panda 的内置方法就足够了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。