у меня есть две панды dataframes определены как таковые:сравнения двух панд кадров данных
_data_orig = [
[1, "Bob", 3.0],
[2, "Sam", 2.0],
[3, "Jane", 4.0]
]
_columns = ["ID", "Name", "GPA"]
_data_new = [
[1, "Bob", 3.2],
[3, "Jane", 3.9],
[4, "John", 1.2],
[5, "Lisa", 2.2]
]
_columns = ["ID", "Name", "GPA"]
df1 = pd.DataFrame(data=_data_orig, columns=_columns)
df2 = pd.DataFrame(data=_data_new, columns=_columns)
Мне нужно найти следующую информацию:
- Поиск удаляет где df1 является набор исходных данных и df2 является новый набор данных
- Мне нужно найти изменения строк для существующей записи между ними. Идентификатор примера == 1 следует сравнить ID ID ID = 1, чтобы узнать, изменилось ли значение столбца для каждой строки.
- Найти любые добавления в df2 verse df1. Пример возврата [4, «Джон», 1,2] и [5, «Лиза», 2,2]
Для работы, чтобы найти изменения в строках, я полагал, что я мог смотреть через df2 и проверить DF1, но это кажется медленным , поэтому я надеюсь найти более быстрое решение там.
Для двух других операций, я действительно не знаю, что делать, потому что, когда я пытаюсь сравнить два dataframes я получаю:
ValueError: Can only compare identically-labeled DataFrame objects
Панды версии: «0.16.1»
Предложения?
вы можете проверить [это отличное решение от @piRSquared] (Http: // StackOverflow. com/a/40229031/5741205) – MaxU