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

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

Сообщение Anonymous »

У меня есть два кадра данных, как ниже. Некоторые из областей1_name и gain2_name перекрывают, и я пытаюсь объединить два имена областей в один длинный список.

Код: Выделить всё

df1 = pd.DataFrame({'area1_index': [0,1,2,3,4,5], 'area1_name': ['AL','AK','AZ','AR','CA','CO']})

df2 = pd.DataFrame({'area2_index': [0,1,2,3,4,5,6], 'area2_name': ['MN','AL','CT','TX','AK','AR','CA']})
< /code>
В конце концов я хочу: < /p>
final = pd.DataFrame({'area1_index': [nan,0,nan,nan,1,2,3,4,5], 'area1_name': [nan,'AL',nan,nan,'AK','AZ','AR','CA','CO'], 'area2_index': [0,1,2,3,4,nan,5,6,nan], 'area2_name':['MN','AL','CT','TX','AK',nan,'AR','CA',nan]})
< /code>
Моя первая мысль заключалась в том, чтобы определить имена перекрывающихся областей, присоединиться к перекрывающемуся DataFrame и отсутствующему DataFrame, как ниже: < /p>
df1_df2_overlap = pd.DataFrame({'area1_index': [0,1,3,4], 'area2_index': [1,4,5,6], 'area1_name': ['AL','AK','AR','CA']})
df2_missing = pd.DataFrame({'area2_index': [0,2,3], 'area2_name': ['MN','CT','TX']})

df3 = pd.merge(df1, df2, "outer")
df4 = pd.merge(df3, df2_missing, "outer")
Но это сортирует все по aeight2_index . Я попытался добавить аргумент .sort_values ​​() с использованием by = ['seq2_index', 'seq1_index'] тоже, но имел такой же результат. Как я могу заказать это так, как я хочу? Или есть лучший способ объединить df1 и df2 без необходимости идентифицировать перекрывающиеся/отсутствующие компоненты?

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

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

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

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

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

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

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