2016-09-20 7 views
0

데이터 집합이 90,000 개입니다. 이 90,000 개의 레코드는 약 3,000 개의 고유 키에 속합니다. 각 Key의 경우, 값은 ItemNumber가 1로 시작하여 'n'까지 올라갑니다.키 당 순차적 행을 기준으로 증가 또는 감소 값 결정

각 키 1 ~ n에 대해 두 번째 행을 첫 번째 행, 세 번째 행을 두 번째 행 등과 비교하고 싶습니다. 내 표의 샘플은 예상 값의 예제로 채워진 일부 값과 함께 아래에 나와 있습니다.

필자는 milepost 값에 대한 열을 가지고 있으며 값이 연속 레코드간에 오름차순인지 내림차순인지를 알고 싶습니다.

예제 이미지는 URL이 : http://i.imgur.com/i1nuAK9.png에서 찾을 수 있습니다.

나는 매우 새로운 python이고 시작하는 데 문제가 있습니다. "ProjectKey A, ItemNum 2"를 "ProjectKey A, ItemNum 1"과 비교해도 첫 번째 레코드를 비교할 수있는 오름차순임을 알고 있습니까? 구문 분석 할 방향을 결정하는 데 문제가 있습니다.

도움이 될 것입니다.

EDIT :를 CSV

ProjectKey, itemNum이, BMP 방향 A, 1,0.2, _ A, 2,1.7, _ A, 3,2.5, _ A, 4 등 니핏 5, _ A, 5,9, _ A, 6,12, _ B, 1.25, _ B, 2,24.2, _ B, 3,21.7, _ B, 4,20.3 , _ C, 1,3, _ C, 2,4, _ C, 3,5, _ C, 4,6, _ C, 5,5, _ C, 6,4,,451,515,C, 7,3, _ C, 8,2, _

+1

어쨌든 데이터를 파이썬으로 가져올 필요가 있기 때문에 데이터를 텍스트 스 니펫으로 제공하십시오. 또한 지금까지 무엇을 했습니까? – albert

+0

감사합니다. 나는 그 몸에 스 니펫을 제공했다. –

답변

0

텍스트에 데이터를 전송 한 후에는 목록의 세트와 루프를 통해 분석하고 비교하기 위해 사용할 수 있습니다

keylistA = [0.2, 1.7, 2.5, 5, 9, 12] 
listAdirection = ['(start)'] 

for i in range(0, len(keylistA)): 
    if keylistA[i] > keylistA[i+1]: 
     listAdirection.append('DESC') 
    elif keylistA[i] < keylistA[i+1]: 
     listAdirection.append('ASC') 
    else: 
     listAdirection.append('SAME') 

이는 다음과 같이 몇 가지 목록을 줄 것이다 :

listAdirection = ['(start)', 'ASC', 'ASC', 'ASC', 'ASC', 'ASC'] 

당신은 중첩 된 목록 형식 또는 사전 설정의 일종을 사용하여 저장된 목록을 가질 수있다. 물론이 모든 것은 해당 열에서 텍스트로 데이터를 내보내는 방법에 크게 좌우됩니다.

+0

"KeyListX"범위를 중첩 할 수 있습니까? 그래서 같은 : 범위의 I : 경우 키리스트 [0] [0]> 키리스트 [0] [1] ... 키리스트 [1] [0]> 키리스트 [1] [1]의 경우 ... –