2012-12-21 2 views
2

data_m에 저장된 일간 데이터를 일일 데이터로 변환하기 위해 팬더를 사용하고 있습니다. 어떤 이유로 인해 resample은 일중 데이터에없는 요일에 행을 추가했습니다. 예를 들어, 1/8/2000은 일중 데이터에 없지만 일별 데이터에는 NaN을 값으로 사용하여 해당 날짜 행이 포함되어 있습니다. DatetimeIndex에는 실제 데이터보다 많은 항목이 있습니다. 내가 뭐 잘못하고 있니?Python 팬더가 원래 데이터에 존재하지 않는 날짜를 추가했습니다.

data_m.resample('D', how = mean).head() 
Out[13]: 
      x 
2000-01-04 8803.879581 
2000-01-05 8765.036649 
2000-01-06 8893.156250 
2000-01-07 8780.037433 
2000-01-08 NaN 

data_m.resample('D', how = mean) 
Out[14]: 
<class 'pandas.core.frame.DataFrame'> 
DatetimeIndex: 4729 entries, 2000-01-04 00:00:00 to 2012-12-14 00:00:00 
Freq: D 
Data columns: 
x 3241 non-null values 
dtypes: float64(1) 

답변

5

당신이하고있는 일은 정확 해 보입니다. 팬더는 빈 배열의 평균에 NaN을 제공합니다.

In [1]: Series().mean() 
Out[1]: nan 

resample일반 시간 간격으로 변환, 그래서 그 날에는 샘플이없는 경우는 NaN를 얻을.

대부분 NaN을 갖는 시간은 문제가되지 않습니다.

data_m.resample('D', how = mean, fill_method='ffill') 
data_m.resample('D', how = mean).dropna() 
: 우리가 fill_method (예를 'ffill') 또는 경우 사용할 수 있습니다 경우 당신은 정말 당신이 (권장하지 않음) dropna를 사용할 수 있습니다 제거하고 싶어
1

이전 0.10.0에 매일 리샘플링을 위해, 다음날 가장 오른쪽 가장자리로 리 샘플 쓰레기통을 표시 판다. 0.10.0부터이 혼란을 최소화하기 위해 매일 및 높은 주파수에 대한 기본 비닝 동작이 label='left', closed='left'으로 변경되었습니다. 자세한 내용은 http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#api-changes을 참조하십시오.

관련 문제