Вы должны просто передать значения в .loc
, однако вы получите предупреждение о будущем, которое вы можете пока игнорировать. Вот пример:
import pandas as pd
data_1 = {'index':[1,2,3,4,5],'Name':['Sanji','Zoro','Luffy','Nami','Chopper']}
data_2 = {'index':[1,2,5,6,7],'Enemies':['DfDqx','Kuro','BigM','Croco','Exodia']}
df_1 = pd.DataFrame(data_1)
df_2 = pd.DataFrame(data_2)
df_1 = df_1.set_index('index')
df_2 = df_2.set_index('index')
df_new = df_1.loc[df_2.index].dropna(how='any')
print(df_new)
Соответствие должно быть для значений индекса 1, 2 и 5. Вывод:
Name
index
1 Sanji
2 Zoro
5 Chopper
Я добавляю dropna()
, потому что в противном случае вы будут возвращены все значения df_1
с NaN
для значений, в которых значение индекса не существует.