Python объединяет или объединяет несколько dfs с пересекающимся индексом даты и времениPython

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

Сообщение Anonymous »

Используя Pandas, вы можете объединить несколько кадров данных со столбцом метки времени и общими столбцами (в данном случае) станцией, долготой, широтой и несколькими столбцами переменных в отдельных файлах, но не дублировать общие столбцы или не иметь несколько строк для столбца времени. в конечном результате?
Примеры первого входного файла:

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

time,station,latitude[unit="degrees_north"],longitude[unit="degrees_east"],ta50m[unit="K"]
2023-01-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,300.1109619140625
2023-01-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,301.6109619140625
2023-01-01T02:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,303.60748291015625
Примеры второго входного файла:

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

time,station,latitude[unit="degrees_north"],longitude[unit="degrees_east"],ua50m[unit="m s-1"]
2023-01-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-3.38525390625
2023-01-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-5.17431640625
2023-01-01T02:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-7.213134765625
Третий+ входной файл:

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

time,station,latitude[unit="degrees_north"],longitude[unit="degrees_east"],ua50m[unit="m s-1"]
2023-02-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-2.19775390625
2023-02-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-1.4140625
2023-02-01T02:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.540,133.360,-0.692626953125
(Желательно) Целевой файл:

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

time,station,"latitude[unit=""degrees_north""]","longitude[unit=""degrees_east""]","ta50m[unit=""K""]","ua50m[unit=""m s-1""]"
2023-01-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,300.1109619140625,-3.38525390625
2023-01-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,301.6109619140625,-5.17431640625
2023-01-01T02:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,303.60748291015625,-7.213134765625
...
2023-02-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,292.739501953125,-2.19775390625
2023-02-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,293.239501953125,-1.4140625
pd.merge (а также merge_ordered и merge_asof), похоже, не работает должным образом с индексом из нескольких столбцов или возвращает повторяющиеся столбцы с суффиксами для станции, широты и долготы.

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

time,station,"latitude[unit=""degrees_north""]","longitude[unit=""degrees_east""]","ta50m[unit=""K""]","ua50m[unit=""m s-1""]_x","ua50m[unit=""m s-1""]_y"
2023-01-01T00:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,300.1109619140625,-3.38525390625,NULL
2023-01-01T01:00:00Z,GridPointRequestedAt[23.553S_133.396E],-23.54,133.36,301.6109619140625,-5.17431640625,NULL
Преобразование столбца времени в индекс даты и времени и использование pd.concat кажется правильным способом... но тогда как исправить отдельные строки времени и избавиться от значения NaN? Я думал, что группировка по индексу может быть хорошим решением, но как?

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

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

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

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

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

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

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