2016-11-22 2 views
-1
import pandas as pd 
import numpy as np 

df1=pd.DataFrame(np.arange(25).reshape((5,5)),index=pd.date_range('2015/01/01',periods=5,freq='D'))) 
df1['trading_signal']=[1,-1,1,-1,1] 

df1Python, как получить значения в одном dataframe с другой dataframe

   0 1 2 3 4 trading_signal 
2015-01-01 0 1 2 3 4   1 
2015-01-02 5 6 7 8 9  -1 
2015-01-03 10 11 12 13 14   1 
2015-01-04 15 16 17 18 19  -1 
2015-01-05 20 21 22 23 24   1 

и df2

     0 1 2 3 4 
Date  Time           
2015-01-01 22:55:00 0 1 2 3 4    
      23:55:00 5 6 7 8 9    
2015-01-02 00:55:00 10 11 12 13 14    
      01:55:00 15 16 17 18 19    
      02:55:00 20 21 22 23 24 

как бы я получить значение trading_signal от df1 и послал его df2. Я хочу, чтобы выход, как это:

     0 1 2 3 4 trading_signal 
Date  Time           
2015-01-01 22:55:00 0 1 2 3 4   1  
      23:55:00 5 6 7 8 9   1  
2015-01-02 00:55:00 10 11 12 13 14   -1  
      01:55:00 15 16 17 18 19   -1 
      02:55:00 20 21 22 23 24   -1 
+0

Добро пожаловать в SO !, пожалуйста, отредактируйте сообщение, чтобы улучшить читаемость. – OdeToMyFiddle

+0

Можете ли вы прочитать свой собственный пост? –

+0

извините ... это мой первый раз, чтобы войти в систему SO ... – JOKER

ответ

1

Вам нужно либо объединить или присоединиться. Если вы объединяетесь, вам нужно сбросить_индекс, что меньше эффективности памяти и медленнее, чем использование соединения. Пожалуйста, прочитайте документы на Joining a single index to a multi index:

Новое в версии 0.14.0.

Вы можете присоединиться к единому индексированному DataFrame с уровнем многоиндексированного DataFrame . Уровень будет совпадать с именем индекса в однократно индексируемой кадр с именем уровня мультииндексированных кадра

Если вы хотите использовать соединение, вы должны назвать индекс df1 быть Date так, что он совпадает с именем первого уровня df2:

df1.index.names = ['Date'] 
df1[['trading_signal']].join(df2, how='right') 


        trading_signal 0 1 2 3 4 
Date  Time           
2015-01-01 22:55:00    1 0 1 2 3 4 
      23:55:00    1 5 6 7 8 9 
2015-01-02 00:55:00    -1 10 11 12 13 14 
      01:55:00    -1 15 16 17 18 19 
      02:55:00    -1 20 21 22 23 24 

Я присоединяюсь прямо по причине, если вы не понимаете, что это значит, пожалуйста, прочитайте Brief primer on merge methods (relational algebra).

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