Есть ли способ сделать Excel INDEX/MATCH в Python, используя два кадра данных в качестве входных данных?Python

Программы на Python
Ответить
Anonymous
 Есть ли способ сделать Excel INDEX/MATCH в Python, используя два кадра данных в качестве входных данных?

Сообщение Anonymous »

Поиск в Google, и только релевантные ответы предписывают слияние, что неприменимо в моем случае.
У меня есть два фрейма данных:

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

2023-08-14 06:30:01 B   C   D   E   F   G
2023-08-14 06:30:01 B   C   D   E   F   G
2023-08-14 06:30:02 B   C   D   E   F   G
2023-08-14 06:30:03 B   C   D   E   F   G
2023-08-14 06:30:04 B   C   D   E   F   G
2023-08-14 06:30:05 B   C   D   E   F   G
2023-08-14 06:30:06 A   B   C   E   F   G
2023-08-14 06:30:07 A   B   C   E   F   G

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

2023-08-14 06:30:01 28  26  8   -7  -17 -14
2023-08-14 06:30:01 28  26  8   -7  -17 -14
2023-08-14 06:30:02 28  26  8   -5  -17 -14
2023-08-14 06:30:03 28  26  5   -5  -17 -14
2023-08-14 06:30:04 28  26  5   -11 -17 -14
2023-08-14 06:30:05 28  26  5   -11 -17 -10
2023-08-14 06:30:06 33  28  26  -11 -17 -10
2023-08-14 06:30:07 34  28  26  -11 -17 -10
Я хотел бы вернуть комбинацию этих двух значений, используя уникальный список значений из da, в порядке столбцов, а также сопоставить столбец и время, чтобы вернуть соответствующий значение из базы данных как значение в результирующем кадре данных, как показано ниже:

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

                    A   B   C   D   E   F   G
2023-08-14 06:30:01 0   28  26  8   -7  -17 -14
2023-08-14 06:30:01 0   28  26  8   -7  -17 -14
2023-08-14 06:30:02 0   28  26  8   -5  -17 -14
2023-08-14 06:30:03 0   28  26  5   -5  -17 -14
2023-08-14 06:30:04 0   28  26  5   -11 -17 -14
2023-08-14 06:30:05 0   28  26  5   -11 -17 -10
2023-08-14 06:30:06 33  28  26  0   -11 -17 -10
2023-08-14 06:30:07 34  28  26  0   -11 -17 -10
Между da и db существует взаимно однозначное соответствие (т. е. одинаковое количество строк и столбцов), поэтому можно было бы сделать это построчно, но я бы предпочел решение, которое не требует итерации, поскольку результаты никоим образом не зависят от пути.
Я могу создавать заголовки столбцов для постоянного тока через карту /set:

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

from itertools import chain

a = list(map(set,da.values.T))
b = list(set(chain.from_iterable(a)))
dc = pd.DataFrame(columns = b)
но как мне заполнить полученный фрейм данных в соответствии с приведенной выше логикой?

Подробнее здесь: https://stackoverflow.com/questions/792 ... aframes-as
Ответить

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

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

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

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

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