2013-09-07 15 views

Odpowiedz

142

zobaczyć dokumenty: http://pandas.pydata.org/pandas-docs/stable/dsintro.html#column-selection-addition-deletion

zastosowania IDX = 0 spowoduje wstawienie na początku

df.insert(idx, col_name, value) 

df = pd.DataFrame({'B': [1, 2, 3], 'C': [4, 5, 6]}) 

df 
Out: 
    B C 
0 1 4 
1 2 5 
2 3 6 

idx = 0 
new_col = [7, 8, 9] # can be a list, a Series, an array or a scalar 
df.insert(loc=idx, column='A', value=new_col) 

df 
Out: 
    A B C 
0 7 1 4 
1 8 2 5 
2 9 3 6 
+6

dla przyszłych użytkowników, nowymi parametrami są * "loc", "column", * i * "value" *. [Źródło] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.insert.html) –

4

można spróbować wyodrębnić kolumny w formie listy, masować to jak chcesz, i reindex swoją dataframe:

>>> cols = df.columns.tolist() 
>>> cols = [cols[-1]]+cols[:-1] # or whatever change you need 
>>> df.reindex(columns=cols) 

    n l v 
0 0 a 1 
1 0 b 2 
2 0 c 1 
3 0 d 2 

EDIT: można to zrobić w jednej linii; jednak wygląda to nieco brzydko. Może jakiś odkurzacz propozycja może przyjść ...

>>> df.reindex(columns=['n']+df.columns[:-1].tolist()) 

    n l v 
0 0 a 1 
1 0 b 2 
2 0 c 1 
3 0 d 2 
Powiązane problemy