2017-02-20 15 views
0

I'va фактически 2 dataframe:Панды ищет время как индекс и игнорировать даты

  1. Сначала один содержит некоторую информацию с указанием даты/времени
  2. Второй содержать другую информацию с указанием даты/времени

мне нужно, чтобы объединить 2 dataframe с помощью ближайшего времени в качестве ключа (дата игнорировать)

мне нужно с заданным временем в первом dataframe найти ближайший временной индекс (или значение) Во втором dataframe

Я надеюсь, что вы понимаете

EDIT:

ИЗ CSV dataFrame 1:

date;index 
01/01/90 00:00:00;2 
01/01/90 00:00:30;9 

ИЗ CSV dataFrame 2:

date;value 
02/02/00 00:00:02;300 

ТРЕБУЕТСЯ:

date;value;index 
02/02/00 00:00:02;300;2 
+1

Вы можете добавить некоторые выборочные данные с желаемым выходом? – jezrael

ответ

1

Вы можете использовать reindex с method='nearest':

#new indexes with same dates, but different times 
df1.index = pd.to_datetime(df1['date'].dt.strftime('%H:%M:%S')) 
df2.index = pd.to_datetime(df2['date'].dt.strftime('%H:%M:%S')) 
print (df1) 
            date index 
date           
2017-02-20 00:00:00 1990-01-01 00:00:00  2 
2017-02-20 00:30:00 1990-01-01 00:00:30  9 

print (df2) 
            date value 
date           
2017-02-20 00:02:00 2000-02-02 00:00:02 300 

df3 = df1.reindex(df2.index, method='nearest') 
#add values from df2 
df = pd.concat([df3.drop('date', axis=1), df2], axis=1).reset_index(drop=True) 
print (df) 
    index    date value 
0  2 2000-02-02 00:00:02 300 
+0

Будет ли это работать, если я добавлю 02/02/00 00: 00: 04; 300 в csv, потому что это будет индекс 2 либо – Timo

+0

Почему вы пропустили% H в своем индексе? – Timo

+0

Да, извините. Ты прав. – jezrael

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

  • Нет связанных вопросов^_^