웹에서 자동화 된 날씨 데이터를 읽고 있습니다. 관측치는 5 분마다 발생하며 각 기상 관측소에 대한 월별 파일로 컴파일됩니다. 파일 파싱을 마치면 DataFrame은 다음과 같습니다.
Sta Precip1hr Precip5min Temp DewPnt WindSpd WindDir AtmPress
Date
2001-01-01 00:00:00 KPDX 0 0 4 3 0 0 30.31
2001-01-01 00:05:00 KPDX 0 0 4 3 0 0 30.30
2001-01-01 00:10:00 KPDX 0 0 4 3 4 80 30.30
2001-01-01 00:15:00 KPDX 0 0 3 2 5 90 30.30
2001-01-01 00:20:00 KPDX 0 0 3 2 10 110 30.28
내가 겪고있는 문제는 때로는 과학자가 잘못된 행을 편집하는 것이 아니라 파일 끝에 중복 행을 추가하여 관측을 수정한다는 것입니다. 이러한 경우의 간단한 예는 다음과 같습니다.
import pandas
import datetime
startdate = datetime.datetime(2001, 1, 1, 0, 0)
enddate = datetime.datetime(2001, 1, 1, 5, 0)
index = pandas.DatetimeIndex(start=startdate, end=enddate, freq='H')
data1 = {'A' : range(6), 'B' : range(6)}
data2 = {'A' : [20, -30, 40], 'B' : [-50, 60, -70]}
df1 = pandas.DataFrame(data=data1, index=index)
df2 = pandas.DataFrame(data=data2, index=index[:3])
df3 = df2.append(df1)
df3
A B
2001-01-01 00:00:00 20 -50
2001-01-01 01:00:00 -30 60
2001-01-01 02:00:00 40 -70
2001-01-01 03:00:00 3 3
2001-01-01 04:00:00 4 4
2001-01-01 05:00:00 5 5
2001-01-01 00:00:00 0 0
2001-01-01 01:00:00 1 1
2001-01-01 02:00:00 2 2
그래서 나는 df3
고르게 해야 합니다.
A B
2001-01-01 00:00:00 0 0
2001-01-01 01:00:00 1 1
2001-01-01 02:00:00 2 2
2001-01-01 03:00:00 3 3
2001-01-01 04:00:00 4 4
2001-01-01 05:00:00 5 5
행 번호 열 ( df3['rownum'] = range(df3.shape[0])
) 을 추가하면의 값에 대해 맨 아래 행을 선택하는 데 도움이 될 것이라고 생각 DatetimeIndex
했지만 그 작업을 수행하기 위해 group_by
또는 pivot
(또는 ???) 문을 알아 내야합니다 .