2016-06-16 6 views
1

In Pandas, ist es möglich, gleichzeitig zuordnen und fügen Sie eine neue Spalte zu einem bestimmten Index/Ort in einem Datenrahmen?Python Pandas - gleichzeitig zuordnen und einfügen Spalte zu bestimmten Index

Ich kann die Zuordnung funktionieren (aus einem Multi-Key-Wörterbuch), erfolgreich erstellt eine neue Spalte am Ende meines Datenrahmens.

#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) 

Ich weiß, dass ich (neu) indizieren und die Sortierreihenfolge angeben kann.

Außerdem weiß ich, dass Spalten an einer angegebenen Index/Position in einem Datenrahmen einfügen kann:

df.insert(index,name,value) 

Es wäre schön/elegant, wenn ich die Mapping-Code könnte und die Spalte an einem angegebenen Index einfügen zusammen . So etwas wie diese konzeptionelle Vermutung:

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

Nein Sie müssen einfügen und dann neu anordnen. –

+0

Ok. Vielen Dank..... –

Antwort

0

Ich habe die Nachbestellung/sortiert nach dem Mapping und Einfügen mit ...

Original-Spaltenreihenfolge: ['col1', 'col2', 'col3']

Neu geordnete mit: df = df[['col3', 'col2', 'col1']]