2017-05-08 2 views
2

팬더 데이터 프레임에 추가 할 목록이 10 진수 범위로 포함되어 있습니다. 나는 각 범위는 하나 개의 값을 나타내는 3 개 범위로 분할 할값 범위를 하나의 값으로 바꿉니다.

sents=[] 
for sent in sentis: 
if sent > 0: 
    if sent < 0.40: 
     sents.append('negative') 
    if (sent >= 0.40 and sent <= 0.60): 
     sents.append('neutral') 
    if sent > 0.60 
     sents.append('positive') 

내가 더 큰 목록

에이를 구현하려고 해요으로이 작업을 수행하는 팬더의보다 효율적인 방법이 있다면 제 질문은

미리 감사드립니다.

답변

0

목록 이해는 :

['negative' if x < 0.4 else 'positive' if x > 0.6 else 'neutral' for x in sentis] 
2

당신은 유형 categorical의이고 적절한 레이블이 결과를 생산하기 위해 pd.cut를 사용할 수 있습니다. 많은 정확히 내가 무엇을 찾고 있어요

sentis = np.linspace(0, 1, 11) 
eps = np.finfo(float).eps 

pd.DataFrame(dict(
     Value=sentis, 
     Sentiment=pd.cut(
      sentis, [-np.inf, .4 - eps, .6 + eps, np.inf], 
      labels=['negative', 'neutral', 'positive'] 
     ), 
    )) 

    Sentiment Value 
0 negative 0.0 
1 negative 0.1 
2 negative 0.2 
3 negative 0.3 
4 neutral 0.4 
5 neutral 0.5 
6 neutral 0.6 
7 positive 0.7 
8 positive 0.8 
9 positive 0.9 
10 positive 1.0 
+0

감사합니다 작은 플로트 엡실론을 neutral 카테고리 .4.6의 포함을 수정, 내가 추가 및 빼기하기 위해

관련 문제