我有两列显示正面和负面分数的情绪分析。这是输出:
scat=btweet[['sentiment_pos', 'sentiment_negative']]
scat
sentiment_pos sentiment_negative
0.286 0.000
0.451 0.000
0.143 0.300
0.151 0.100
我想从每一列中获得最大值, 我试过这个,但只有一个列的最大价值。
scat.nlargest(4, 'sentiment_pos')
sentiment_pos sentiment_negative
0.451 0.000
0.286 0.000
0.151 0.300
0.143 0.100
我的输出应该是这样的
sentiment_pos sentiment_negative
0.451 0.300
0.286 0.100
0.151 0.000
0.143 0.000
有人可以帮我写代码吗?
答案 0 :(得分:1)
您可以通过numpy
。
例如,对于每列中最大的2个: -
df = pd.DataFrame(np.sort(df.values, axis=0)[::-1][:2], columns=df.columns)
结果:
sentiment_pos sentiment_negative
0 0.451 0.3
1 0.286 0.1
答案 1 :(得分:0)
你可以尝试这个功能。它需要 n - 数据框
中每列的最大值数 def TopMaxValues(n):
sentiment_pos = []
sentiment_negative=[]
arrsentiment_pos=np.array(sentimentdf['sentiment_pos'])
arrsentiment_negative=np.array(sentimentdf['sentiment_negative'])
idx1 = list((-arrsentiment_pos).argsort()[:n])
idx2 = list((-arrsentiment_negative).argsort()[:n])
for MaxValue in range(len(idx1)):
sentiment_pos.append(sentimentdf['sentiment_pos'][idx1[MaxValue]])
sentiment_negative.append(sentimentdf['sentiment_negative'][idx2[MaxValue]])
sentimentdf['sentiment_pos']=sentiment_pos
sentimentdf['sentiment_negative']=sentiment_negative
return resultsdf