내 데이터는 특정 날짜에 여러 이벤트를 포함하거나 특정 날짜에 이벤트가 없을 수 있습니다. 나는이 사건들을 가지고 날짜별로 카운트를 얻고 그것들을 플로팅합니다. 그러나 내가 그들을 플로팅 할 때 두 시리즈가 항상 일치하지는 않습니다.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
위의 코드에서 idx 는 30 일의 범위가됩니다. 2013 년 1 월 9 일 ~ 2013 년 9 월 30 일 그러나 S 는 주어진 날짜에 이벤트가 발생하지 않았기 때문에 25 일 또는 26 일 밖에 없을 수 있습니다. 그런 다음 플롯하려고 할 때 크기가 일치하지 않기 때문에 AssertionError가 발생합니다.
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
이 문제를 해결하는 적절한 방법은 무엇입니까? IDX 에서 값이없는 날짜를 제거하고 싶 습니까? 아니면 (차라리 수행하고 싶습니다) 계수가 0 인 누락 된 날짜를 시리즈에 추가합니다. 차라리 값이 0 인 30 일의 전체 그래프를 갖고 싶습니다. 이 접근 방식이 맞다면 시작하는 방법에 대한 제안이 있습니까? 일종의 동적 reindex
기능이 필요 합니까?
다음은 S ( df.groupby(['simpleDate']).size()
) 의 스 니펫입니다 . 04와 05에는 항목이 없습니다.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
놀라운 기능입니다. (1) 새 레이블 집합과 일치하도록 기존 데이터의 순서를 다시 지정하고, (2) 이전에 레이블이없는 새 행을 삽입하고, (3) 누락 된 레이블에 대한 데이터를 채울 수 있습니다. (앞 / 뒤 채우기 포함) (4) 행 선택 라벨로!