У меня есть 25 кадров данных, каждый из которых имеет 7 дат по возрастанию (в виде строк) и от 570 до 600 названий аэропортов в виде столбцов. Большая проблема заключается в том, что, поскольку фреймы данных хранят количество подъемов, которые каждый аэропорт совершает каждый день, недели, в течение которых определенные аэропорты неактивны, приводят к тому, что фреймы данных имеют разные порядки и количества одинаковых и непохожих названий аэропортов. Все имена столбцов будут отображаться в алфавитном порядке в каждом фрейме данных, но отсутствие только одного столбца аэропорта из фрейма данных нарушает все выравнивание главного фрейма данных.
Я пробовал объединить, объединить, объединить, обновить ... эта проблема действительно сложна, и моя конечная цель - иметь основной фрейм данных со всеми существующими аэропортами в алфавитном порядке в виде столбцов и текущими строками по мере увеличения дат и прохождения времени.
Я думаю, что мне нужно сделайте для l oop, чтобы сделать это: 1. Данные не могут быть потеряны 2. Необходимо объединить кадры данных по столбцам, чтобы, если имя столбца второго кадра данных совпадает с именем столбца первого кадра, новый данные будут добавлены ниже этого столбца без повторения имени столбца снова. 3. Если имя столбца второго столбца отличается от имени столбца первого, я хочу, чтобы столбец был добавлен как новый столбец (желательно в алфавитном порядке). 4.Если во втором фрейме данных нет столбца, который есть в первом, я хочу, чтобы он сказал NAN для этого аэропорта.
В общем, основные части, которые я хочу сделать для l oop, - это добавить данные в идентичные столбцы (даже если в фреймах данных есть столбцы не в порядке), добавить столбцы, которых раньше не было, заполните NAN, где отсутствуют аэропорты, и убедитесь, что имена столбцов отображаются только как строка 0. Извините, это так сложно объяснить.
Вот два простых примера фреймов данных, которые я хочу, чтобы for l oop мог объединить
df1 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['Airport1', 'Airport3', 'Airport4'])
df1.index.name='Dates'
df1.index=['11/01','11/02','11/03']
df2 = pd.DataFrame(np.array([[2, 4, 6], [8, 10, 12], [14, 16, 18]]),
columns=['Airport1', 'Airport2', 'Airport3'])
df2.index.name='Dates'
df2.index=['11/04','11/05','11/06']
display(df1,df2)
Dates **Airport1** **Airport3** **Airport4**
11/01 1. 2. 3.
11/02 4. 5. 6.
11/03 7. 8. 9.
Dates **Airport1** **Airport2** **Airport3**
11/04 2. 4. 6
11/05 8. 10. 12
11/06 14. 16. 18
Результат, который мне нужен для l oop должен быть:
Dates **Airport1** **Airport2** **Airport3** **Airport4**
11/01 1. NAN. 2. 3
11/02. 4. NAN. 5. 6
11/03. 7. NAN. 8. 9
11/04. 2. 4. 6. NAN
11/05. 8. 10. 12. NAN
11/06. 14. 16. 18. NAN
Еще одно примечание: у меня есть 25 кадров данных для объединения и подсчета, поэтому я хотел бы, чтобы для l oop можно было принимать бесконечные кадры данных . Заранее большое спасибо !!!