Для внутреннего соединения во всех столбцах вы также можете использовать fintersect
из data.table -пакет или intersect
из dplyr -пакета в качестве альтернатив merge
без указания by
-колонков. это даст строки, которые равны между двумя кадрами данных:
merge(df1, df2)
# V1 V2
# 1 B 2
# 2 C 3
dplyr::intersect(df1, df2)
# V1 V2
# 1 B 2
# 2 C 3
data.table::fintersect(setDT(df1), setDT(df2))
# V1 V2
# 1: B 2
# 2: C 3
Пример данных:
df1 <- data.frame(V1 = LETTERS[1:4], V2 = 1:4)
df2 <- data.frame(V1 = LETTERS[2:3], V2 = 2:3)
break
ведет себя одинаково на обоих языках. Проверьте отступ в вашей программе на Python. Ваши первые два образца шпульд ведут себя одинаково.