Pandas Объединение с повторяющимися строкамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pandas Объединение с повторяющимися строками

Сообщение Anonymous »

У меня есть конкретный вариант использования, когда у меня есть 2 фрейма данных, которые имеют 2 одинаковые строки, за исключением 1 столбца. Мне нужно, чтобы идентичные строки совпадали с идентичными строками, все несовпадающие строки должны быть сложены вертикально.
Вот сценарий
df1 = pd.Dataframe({
'id': [0, 1, 2],
'account': ['a', 'b', 'c'],
'details': [
[
{'a': 'b'},
{'c': 'd'}
],
[
{'e': 'f'},
{'g': 'h'}
],
[
{'a': 'b'},
{'c': 'd'}
]
]})
df2 = pd.Dataframe({
'id': [0, 1, 3],
'account': ['a', 'b', ‘g’],
'details': [
[
{'a': 'b'},
{'c': 'd'}],
[
{'e': 'f'},
{'g': 'h'}
]
[
{'e': 'f'},
{'g': 'h'}
]
],
'attempts': [4, 5, 6]
})

Мне нужно получить фрейм данных, похожий на показанный ниже. Я попробовал объединить, но потерял несколько строк в df2 с несовпадающими левыми соединениями. Если я конкатирую, мне нужно удалить дубликаты и обновить строку с заполненным полем попыток. Также возможно и наоборот, когда df2 имеет уникальные строки, которые также необходимо объединить с df1
result = pd.Dataframe({
'id': [0, 1, 2, 3],
'account': ['a', 'b', 'c', ‘g’],
'details': [
[
{'a': 'b'},
{'c': 'd'}
],
[
{'e': 'f'},
{'g': 'h'}
],
[
{'a': 'b'},
{'c': 'd'}
],
[
{'e': 'f'},
{'g': 'h'}
],
],
'attempts': [4, 5, NaN, 6]
})


Подробнее здесь: https://stackoverflow.com/questions/788 ... icate-rows
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»