Сравнивая два DataFrames и выясняем индекс строк с одинаковыми значениями - PullRequest
0 голосов
/ 23 мая 2019

У меня есть два кадра данных, как показано ниже.

df1 = [[0,1,1,1,1,1],[1,0,1,1,1,1],[1,1,0,1,1,1],[1,1,1,1,0,1],[1,0,1,1,0,1],[1,1,0,1,1,1],[1,1,1,0,1,1],[0,0,0,0,0,0],[0,0,0,0,0,0],[1,0,1,1,1,1]]
df2 = [[0,1,1,1,1,1],[1,0,1,1,1,1],[1,1,0,1,1,1],[1,1,1,1,0,1],[1,1,1,0,1,1]]
df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)
df_1 = df_1.drop([0,5])
print(df_1)
print(df_2)

Как видите, я удаляю две строки из df_1 без сброса индекса. Таким образом, df_1 начинается с индекса 1 в первой строке вместо 0.

Я ищу способ найти индекс строк df_1, который имеет те же строки, что и df_2, поэтому мой ожидаемый результат должен быть

[1, 2, 3, 6, 9]

Я попробовал приведенный ниже код, предложенный @WeNYoBen из другого поста.

index = df_1.merge(df_2,indicator=True,how='left').loc[lambda x : x['_merge']=='both'].index

Но код дал мне следующий вывод

index = [0, 1, 2, 4, 7]

Как вы можете видеть вышеупомянутый вывод дает мне индекс сброса df_1 после операции удаления.

Причина, по которой я хочу иметь [1, 2, 3, 6, 9] вместо [0, 1, 2, 4, 7], заключается в том, что мне нужно дополнительно отбрасывать строки df_1 на основе индекса I хотите, и в то же время получать дополнительную информацию из каждой строки (я не показывал в приведенном выше примере)

Пожалуйста, добавьте меня. Большое вам спасибо!

Tommy

...