Использование значения столбца для поиска имени заголовка столбца в PandasPython

Программы на Python
Anonymous
Использование значения столбца для поиска имени заголовка столбца в Pandas

Сообщение Anonymous »

У меня есть фрейм данных pandas. Я пытаюсь использовать значения в данном столбце (год), чтобы найти соответствующее имя заголовка и добавить его в новый столбец (имя_года). Например, если кадр данных выглядит следующим образом (где столбец itemName является индексом):



itemName
2020
2021
2022
2023
2024
год




item1
5
20
10
10
50
3


item2
10
10
50
20
40
2


item3
12
35
73
10
54
4



Результат должен быть таким:



itemName
2020
2021
2022
2023
2024
год
year_name




item1
5
20
10
10
50
3
2022


item2
10
10
50
20
40
2
2021


item3
12
35
73
10
54
4
2023



Я пытаюсь использовать лямбда-функцию, чтобы использовать значение каждой строки «год», и использовать ее, чтобы найти имя столбца для этой строки и добавить его в столбец «имя_года».
Я пробовал:

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

col_names = result_dict[col].columns.tolist()
result_df[[last_year_header']] = result_df[[_last_year']].apply(lambda x: col_names[x])
но это дало мне следующую ошибку:

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

TypeError: list indices must be integers or slices, not Series
Я тоже пробовал:

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

col_names = result_dict[col].columns.tolist()
result_df[[last_year_header']] = result_df[[_last_year']].apply(lambda x: col_names[x.iloc[0].astype(int)])
Но это дало мне:

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

IndexError: list index out of range
В данном случае я явно что-то упускаю с реализацией лямбда-функции. Как я могу это исправить?


Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-pandas

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