Могу ли я одновременно отображать и вставлять столбец в определенный индекс в пандах?

Можно ли в pandas одновременно отображать и вставлять новый столбец в определенный индекс / место в кадре данных?

Я могу заставить отображение работать (из многоключевого словаря), успешно создавая новый столбец в конце моего фрейма данных.

#using multi_key_dict https://pypi.python.org/pypi/multi_key_dict
from multi_key_dict import multi_key_dict
k = multi_key_dict()
k['AAAA', 'BBBB'] = 'San Francisco'
k['CCCC'] = 'Los Angeles'
k['DDDD', 'EEEE', 'FFFF',] = 'San Diego'

# Add new column 'location' to df, based on results of mapping dictionary K to existing column 'codes'
df['location'] = df['codes'].map(k.get)

Я знаю, что могу (пере) проиндексировать и указать порядок сортировки.

Кроме того, я знаю, что могу вставлять столбцы с указанным индексом / позицией в кадре данных:

df.insert(index,name,value)

Было бы хорошо / элегантно, если бы я мог кодировать сопоставление и вставить столбец по указанному индексу вместе. Что-то вроде этого концептуального предположения:

df['location'] = df['codes'].map(k.get).insert(5,'location')

1 ответ

Я сделал переупорядочение / сортировку после сопоставления и вставки, используя...

Исходный порядок столбцов: ['col1', 'col2', 'col3']

Переупорядочено с использованием: df = df[['col3', 'col2', 'col1']]

df.insert(5,'location',df['codes'].map(k.get))
Другие вопросы по тегам