2014-04-01 6 views
1

팬더 데이터 프레임에 누락 된 값을 입력하고 싶습니다. 최적으로 각 시간당 0-60 범위의 minute 열을 원합니다. 불행하게도, 데이터 생성 프로세스는 행을 기록하지 않았다. sub_count = 0. 이 작업을 수행 할 여지가 있습니까? 내 데이터는 2014-03-312014-04-01 날짜를 다룹니다.팬더 데이터 프레임에 누락 된 값을 입력하십시오.

df = 

    sub_count  date hour minute 
0   1 2014-03-31  0  0 
1   1 2014-03-31  0  4 
2   1 2014-03-31  0  5 
3   1 2014-03-31  0  6 
4   2 2014-03-31  0  7 
... 

답변

3

(가 저장되는 방법이 동안의 데이터를 읽고 따라 할 수있을 수 있음) DatetimeIndex를 구축 : 다음

df = df.set_index(pd.to_datetime(df.date + 'T' + 
           df.hour.astype(str) + ':' + 
           df.minute.astype(str)) 

In [23]: df = df['sub_count'] 

In [24]: df 
Out[24]: 
2014-03-31 00:00:00 1 
2014-03-31 00:04:00 1 
2014-03-31 00:05:00 1 
2014-03-31 00:06:00 1 
2014-03-31 00:07:00 2 
Name: sub_count, dtype: int64 

는 다시 샘플링 :

In [26]: df.resample('T') 
Out[26]: 
2014-03-31 00:00:00  1 
2014-03-31 00:01:00 NaN 
2014-03-31 00:02:00 NaN 
2014-03-31 00:03:00 NaN 
2014-03-31 00:04:00  1 
2014-03-31 00:05:00  1 
2014-03-31 00:06:00  1 
2014-03-31 00:07:00  2 
Freq: T, Name: sub_count, dtype: float64 
+0

난 + : 'datetime.date'및 'str''오류에 대해 지원되지 않는 피연산자 유형이 나타납니다. '.df.date'의 끝에'.astype (str)'을 추가하면 코드가 실행되지만'df.resample ('T')'는 아무 것도하지 않는 것 같습니다 : ( – user3439329

+0

죄송합니다. 내 부분에 어리석은 실수 :) – user3439329

+0

어떤 종류의 데이터 프레임이 무엇입니까? 더 이상 열 이름을 편집 할 수 없습니다. – user3439329

관련 문제