2012-08-28 4 views
1

1408 개의 데이터 라인이있는 파이썬 데이터 프레임이 있습니다. 내 목표는 일주일 동안 주어진 요일과 관련된 가장 큰 수와 가장 작은 수를 이전 가장 큰/가장 작은 것이 발생한 요일의 같은 요일과 비교하는 것입니다. 본질적으로, 저는 5 분위수를 (1 주일에 5 일이 있기 때문에) 1 등급과 5 등급으로 바라보고, 그들이 주마다 어떻게 변하는지를보고 싶습니다. 매주 평일과 관련된 번호의 CDF를 작성하십시오.파이썬 데이터 프레임을 청소하는 데이터

  1. 데이터를 정리하려면 총 18 주를 제거해야합니다. 즉, 휴일과 관련된 데이터 프레임의 매주와 휴가가 발생한 다음 주 전체를 합한 것입니다.

  2. 이 후, 내 모든 데이터를 월요일부터 금요일까지 레이블링하는 데이터 프레임에 삽입해야한다고 생각합니다. 파일의 모든 날짜 (6 년 동안의 데이터)입니다. M-F에 레이블을 지정하는 이유는 요일과 관련된 각 숫자를 오름차순으로 정렬 할 수 있기 때문입니다. 요일에 쿼리하십시오.

1. 또는 2. 또는 둘 모두에 대한 방법론 제안은 대단히 감사하겠습니다.

감사합니다. 그것이 최선의 결과 GROUPBY 객체에 df.groupby()apply()의 조합으로 달려 드는 것처럼

답변

0

# 2 보인다. 아마도 가장 좋은 방법을 예로들 수 있습니다.

감안할 dataframe :

In [53]: df 
Out[53]: 
      Value 
2012-08-01  61 
2012-08-02  52 
2012-08-03  89 
2012-08-06  44 
2012-08-07  35 
2012-08-08  98 
2012-08-09  64 
2012-08-10  48 
2012-08-13 100 
2012-08-14  95 
2012-08-15  14 
2012-08-16  55 
2012-08-17  58 
2012-08-20  11 
2012-08-21  28 
2012-08-22  95 
2012-08-23  18 
2012-08-24  81 
2012-08-27  27 
2012-08-28  81 
2012-08-29  28 
2012-08-30  16 
2012-08-31  50 

In [54]: def rankdays(df): 
    .....: if len(df) != 5: 
    .....:  return pandas.Series() 
    .....: return pandas.Series(df.Value.rank(), index=df.index.weekday) 
    .....: 

In [52]: df.groupby(lambda x: x.week).apply(rankdays).unstack() 
Out[52]: 
    0 1 2 3 4 
32 2 1 5 4 3 
33 5 4 1 2 3 
34 1 3 5 2 4 
35 2 5 3 1 4 
관련 문제