【发布时间】:2021-04-01 05:38:15
【问题描述】:
我有两个数据框,我已加入。在加入的 Dataframe 上,我正在编写一个用户定义的函数,其中基于时间戳和列的值计数,我需要根据下面提到的条件返回值,创建一个名为“Day_Sentiment”的新列。但我得到了错误。请告诉我该怎么做
输入:
Date Content Cleaned-content Sentiment
11/12/2020 abb bbc abb Bad
12/10/2020 xyz xxy Good
11/24/2020 tyu yuu Neutral
12/16/2020 iop yui Bad
输出:
Date Content Cleaned-content Sentiment Day_Sentiment
11/12/2020 abb bbc abb Bad Bad
12/10/2020 xyz xxy Good Bad
11/24/2020 tyu yuu Neutral Bad
12/16/2020 iop yui Bad Bad
到目前为止,我在下面尝试过:
df = input_data.join(results)
def compare_def(df):
no.bad_senti= df.loc[df['Sentiment'] == 'Bad']
no.neut_senti = df.loc[df['Sentiment'] == 'Neutral']
no.good_senti= df.loc[df['Sentiment'] == 'Good']
if ((no.bad_senti> no.good_senti) & (no.bad_senti> no.neut_senti)):
output = 'Bad'
elif ((no.good_senti> no.bad_senti) & (no.good_senti> no.neut_senti)):
output= 'Good'
elif ((no.neut_senti> no.bad_senti) & (no.neut_senti> no.good_senti)):
output= 'Neutral'
elif no.good_senti== no.bad_senti:
output= 'Neutral'
elif no.bad_senti== no.neut_senti:
output= 'bad'
elif no.good_senti== no.neut_senti:
output= 'good'
else:
output= 'Neutral'
return output
df['Day_Sentiment'] = output
替代:
output = compare_def(df)
df['Day_Sentiment'] = output
错误:
ValueError: Can only compare identically-labeled DataFrame objects
示例 1: 预测情绪 情绪 2 坏 1 好 1 中性
然后在函数中 2 > 1 和 2 > 1 返回错误
示例 2: 情绪: 2 坏 5 好 5 中性
功能:
2 > 5 错误的 5 > 2 和 5 > 5 错误的 5 > 2 和 5 > 5 错误的 5==2 错误的 2==5 错误的 5==5 真的 回报好
【问题讨论】:
标签: python python-3.x pandas dataframe valueerror