在pandas中,我可以同时映射列并将列插入特定索引吗?

时间:2016-06-16 20:00:03

标签: python pandas dataframe insert

在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')

2 个答案:

答案 0 :(得分:0)

我在映射和插入后进行了重新排序/排序,使用...

原始列顺序:['col1', 'col2', 'col3']

使用:df = df[['col3', 'col2', 'col1']]重新排序

答案 1 :(得分:0)

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