index example data create python datetime pandas filtering dataframe

example - python pandas dataframe index



Filtrar pandas DataFrames en fechas (5)

La respuesta anterior no es correcta en mi experiencia, no se puede pasar una cadena simple, debe ser un objeto de fecha y hora. Asi que:

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

Tengo un Panda DataFrame con una columna ''fecha''. Ahora necesito filtrar todas las filas en el DataFrame que tengan fechas fuera de los próximos dos meses. Esencialmente, solo necesito retener las filas que están dentro de los próximos dos meses.

¿Cuál es la mejor manera de lograr esto?


Si las fechas están en el índice, simplemente:

df[''20160101'':''20160301'']


Si su columna de fecha y hora tiene el tipo de fecha y hora de Pandas (por ejemplo, datetime64[ns] ), para el filtrado adecuado necesita el objeto pd.Timestamp , por ejemplo:

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]


Y si sus fechas están estandarizadas mediante la importación de paquetes de fecha y hora, simplemente puede usar:

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

Para estandarizar su cadena de fecha usando el paquete de fecha y hora, puede usar esta función:

import datetime datetime.datetime.strptime


Si es el índice, debe usar el selector .ix o .loc .

Por ejemplo:

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

Vea los detalles aquí http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection

Supongo que es inteligente leer bastante sobre los pandas antes de comenzar, ya que es una biblioteca muy poderosa. De lo contrario, será difícil lograr algo significativo.

ACTUALIZAR:

Si la columna no es el índice, tiene dos opciones:

  1. Conviértalo en el índice (temporal o permanentemente si se trata de datos de series temporales)
  2. df[(df[''date''] > ''2013-01-01'') & (df[''date''] < ''2013-02-01'')]

Vea here para la explicación general