Слияние данных с одним и тем же индексом и удаление данных без одного и того же индекса - PullRequest
0 голосов
/ 08 октября 2019

dataFrame 1:

index                    col1 
03-05-2018 12:00:00         3   
03-05-2018 13:00:00         4    
03-05-2018 14:00:00         3       
03-05-2018 15:00:00         3  
.......                    ..    

dataFrame2

index                   col2 
03-05-2018 12:00:00        1    
03-05-2018 13:00:00        3    
03-05-2018 13:30:00        4    
03-05-2018 14:30:00        2    
03-05-2018 15:00:00        3   
.....                     ..

Я хочу объединить эти кадры данных и удалить значения, индексы которых не совпадают:

dataFrame3:

index                    col1 col2 
03-05-2018 12:00:00         3    1  
03-05-2018 13:00:00         4    3   
03-05-2018 15:00:00         3    3  
.........                  ..   .. 

Есть ли такая функция, как pd.merge для этого? (это pandas dataframe, а индексы - объекты DateTime) Спасибо!

EDIT: я использовал pd.merge (dataFrame1, dataFrame2, how = 'inner', on = 'index', left_index = True, right_index =True) и я получил ошибку «Невозможно сравнить тип« Timestamp »с типом« int ». Я действительно уверен, что оба индекса являются временными метками

1 Ответ

0 голосов
/ 08 октября 2019

Я бы просто выполнил inner. Объединение inner в основном выполняет объединение, когда значения on совпадают, в противном случае его отбрасывают (удаляет для целей данного вопроса).

a = {'index':['A','C','D','G'],'col1':[3,4,3,3]}
b = {'index':['A','B','C','E','G'],'col2':[1,4,3,2,3]}
df_1 = pd.DataFrame(a)
df_2 = pd.DataFrame(b)
df_3 = df_1.merge(df_2,how='inner',on='index')
print(df_3)

Вывод:

  index  col1  col2
0     A     3     1
1     C     4     3
2     G     3     3
...