2016-12-27 3 views
1

Я читаю серию данных из файла через pd.read_csv(). Потом каким-то образом создать dataframe вроде следующего:как фильтровать по дням с помощью pandas

   col1 col2 
01/01/2001  a1  a2 
02/01/2001  b1  b2 
03/01/2001  c1  c2 
04/01/2001  d1  d2 
01/01/2002  e1  e2 
02/01/2002  f1  d2 
03/01/2002  g1  g2 
04/01/2002  h1  h2 

Что я хотел бы сделать, это groub в тот же день, и присвоить ему значение, я имею в виду:

  col1 
01/01  ax  
02/01  bx  
03/01  cx  
04/01  dx 

Does у кого есть какие-то подсказки, как это сделать гладко?

Большое спасибо.

LS

+0

Является ли тип данных вашего 'index' datetime или object/string? Вы можете проверить с помощью 'df.index.dtype'. – Abdou

ответ

0

Первое, что я хотел бы сделать, это убедиться, что ваш индекс финики. Если вы знаете, что это так, то пропустите это.

df.index = pd.to_datetime(df.index) 

Тогда вы groupby с чем-то вроде [df.index.month, df.index.day] или df.index.strftime('%m-%d'). Однако вам нужно выбрать агрегацию или преобразование. Вы не указали, что вы хотели сделать, поэтому я выбрал функцию first для агрегирования.

df.groupby(df.index.strftime('%m-%d')).first() 

     col1 col2 
01-01 a1 a2 
02-01 b1 b2 
03-01 c1 c2 
04-01 d1 d2 
+0

отлично! Большое спасибо, это работает! С наилучшими пожеланиями – Lorenzo

Смежные вопросы