2016-08-23 2 views
1

나는 10 분마다 변하는 7 개의 다른 밸브 (solenoid vales)의 측정을 포함하는 24 시간 시리즈의 CSV 파일을 가지고 있습니다 (밸브 1,2,3,4,5,6, 1,2,3,4,5, 6,7 그리고 다시 1로 시작). 밸브가 (1,2,3,4,5,6,7,8,9,10,11,12,13 ...)를 측정 할 때마다 고유 한 Measurement ID을 할당하고 싶습니다. 각 측정 간격의 마지막 10 초 (= 선)를 추출합니다.시계열에서 반복적으로 클래스를 측정하기위한 고유 한 ID를 만들 수 있습니까?

팬더에서 이론적으로 가능한가? 나는 내가 적용 할 수있는 기능을 찾는데 실패했다.

내 팬더 ​​dataframe에서이 압축을 푼 df

df=pd.read_csv(file) 


Out[61]: 
       DATE_TIME solenoid_valves  N2O  CH4 CO2_ppm 
0  10/08/2016 12:04:56   7.000000 0.272953 1.810904  NaN 
.... 
8740 10/08/2016 14:30:36   2.000000 0.349828 29.527575 352.32 
8741 10/08/2016 14:30:37    NaN  NaN  NaN 352.61 
8742 10/08/2016 14:30:38   2.000000 0.349729 29.508612 352.12 
8743 10/08/2016 14:30:39   2.000000 0.349655 29.501180 352.88 
8744 10/08/2016 14:30:40   2.200969 0.349388 29.492402 353.16 
8745 10/08/2016 14:30:41   2.600484 0.347622 29.483979 352.44 
8746 10/08/2016 14:30:42   3.000000 0.341632 29.476394 352.96 
... 
56512 11/08/2016 3:46:48   3.000000 0.300992 8.988894 420.42 
56513 11/08/2016 3:46:49   3.000000 0.304847 8.990150 420.60 
56514 11/08/2016 3:46:50   3.143836 0.302620 8.991343 420.89 
56515 11/08/2016 3:46:51   4.000000 0.295150 8.992416 421.90 
56516 11/08/2016 3:46:52   4.000000 0.286783 8.993618 421.90 
56517 11/08/2016 3:46:53   4.000000 0.285636 8.994677 421.57 
56518 11/08/2016 3:46:54    NaN  NaN  NaN 422.47 
56519 11/08/2016 3:46:55   4.000000 0.276346 8.993526 422.75 
56520 11/08/2016 3:46:56   4.000000 0.277580 8.992645 423.02 

나는 다음과 같은 과제를 확인했다 : 밸브 스위치 (라인 8744,8745 또는 56514 참조)

  • 하나 이상의 밸브 번호 십진수를 갖는 경향이있다. 제외하고 싶습니다. 먼저 제거해야합니까?
  • 일부 줄에는 무시해야하는 값 (NaN)이 있습니다.

내가 원하는 것은 가능하지만 내 데이터 분석에 혁명을 일으킬 수 있으므로 모든 입력을 매우 높이 평가할 것입니다!

답변

0

은 누락 된 값으로 모든 행을 제거하려면 :

df = df.dropna() 

그런 다음 정수로의 변환 된 값으로 열을 비교하여 정수들만을 유지 :

df = df[df.solenoid_valves == df.solenoid_valves.astype(int)] 
+0

감사합니다! 그 일을 잘 .... 나는 여전히 밸브 변경 때마다 변경 될 ID 열을 삽입하는 방법을 찾으려고 노력하고 있어요 ... 나는'grouped = df [ 'solenoid_valves']와 같은 것을 사용하는 것에 대해 생각했습니다. groupby (lambda x : x.hour)'하지만 시간이 바뀌면 다른 그룹이 만들어 지지만 밸브는 아직 변경되지 않았습니다 .... – vera

+1

(df.solenoid_valves! = df.solenoid_valves.shift()). cumsum() – Boud