IT story

날짜에 대한 Pandas DataFrames 필터링

hot-time 2020. 8. 9. 09:43
반응형

날짜에 대한 Pandas DataFrames 필터링


'날짜'열이있는 Pandas DataFrame이 있습니다. 이제 다음 두 달을 벗어난 날짜가있는 DataFrame의 모든 행을 필터링해야합니다. 기본적으로 다음 2 개월 이내의 행만 유지하면됩니다.

이를 달성하는 가장 좋은 방법은 무엇입니까?


경우 날짜 열이 인덱스는 다음 위치 색인 레이블 기반 색인 또는 .iloc에 대한 .loc 사용합니다.

예를 들면 :

df.loc['2014-01-01':'2014-02-01']

자세한 내용은 http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection을 참조하십시오 .

열이 인덱스아닌 경우 두 가지 선택이 있습니다.

  1. 인덱스로 만들기 (시계열 데이터 인 경우 일시적 또는 영구적)
  2. df[(df['date'] > '2013-01-01') & (df['date'] < '2013-02-01')]

일반적인 설명 여기참조 하십시오.

참고 : .ix는 더 이상 사용되지 않습니다.


내 경험상 이전 답변이 정확하지 않으며 간단한 문자열을 전달할 수 없으며 datetime 객체 여야합니다. 그래서:

import datetime 
df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]

datetime 패키지를 가져 와서 날짜를 표준화 한 경우 다음을 사용하면됩니다.

df[(df['date']>datetime.date(2016,1,1)) & (df['date']<datetime.date(2016,3,1))]  

datetime 패키지를 사용하여 날짜 문자열을 표준화하려면 다음 함수를 사용할 수 있습니다.

import datetime
datetime.datetime.strptime

datetime 열에 Pandas datetime 유형 (예 :)datetime64[ns] 이있는 경우 적절한 필터링을 위해 pd.Timestamp 객체 가 필요합니다 . 예를 들면 다음과 같습니다.

from datetime import date

import pandas as pd

value_to_check = pd.Timestamp(date.today().year, 1, 1)
filter_mask = df['date_column'] < value_to_check
filtered_df = df[filter_mask]

날짜가 색인에 있으면 간단히 :

df['20160101':'20160301']

pd.Timestamp를 사용하여 쿼리 및 로컬 참조를 수행 할 수 있습니다.

import pandas as pd
import numpy as np

df = pd.DataFrame()
ts = pd.Timestamp

df['date'] = np.array(np.arange(10) + datetime.now().timestamp(), dtype='M8[s]')

print(df)
print(df.query('date > @ts("20190515T071320")')

출력

                 date
0 2019-05-15 07:13:16
1 2019-05-15 07:13:17
2 2019-05-15 07:13:18
3 2019-05-15 07:13:19
4 2019-05-15 07:13:20
5 2019-05-15 07:13:21
6 2019-05-15 07:13:22
7 2019-05-15 07:13:23
8 2019-05-15 07:13:24
9 2019-05-15 07:13:25


                 date
5 2019-05-15 07:13:21
6 2019-05-15 07:13:22
7 2019-05-15 07:13:23
8 2019-05-15 07:13:24
9 2019-05-15 07:13:25

참고 URL : https://stackoverflow.com/questions/22898824/filtering-pandas-dataframes-on-dates

반응형