2016-07-18 6 views
0

Ich habe folgende Pandas Datenrahmen:Wie verschiebt man Spaltenzeilen und weist Spaltenwerte in Pandas Dataframe neu zu?

import pandas as pd 
import numpy as np 
data = 'filename.dat' 
df = pd.read_table(data) 
print(df) 

    0.098722 08l23252 243434214 5   True 
0 0.469112 -0.282863 -1.509059 2   True 
1 0.283421 1.224234 7.823421 2   False 
2 -1.135632 1.212112 -0.173215 4   False 
3  2.34  0.271 0.0932 4   True 
4 0.119209 -1.044236 -0.861849 4   True 
5 -2.104569 -0.494929 1.071804 4   False 
6 0.469112 -0.282863 -1.509059 3   True 
7 1.023236 1.224234 7.823421 3   False 
8 -1.135632 1.212112 -0.173215 3   False 
9 23.23422 2.613492 2.341592 1   True 
.... 

Die Daten in filename.dat wird gespeichert die so die erste Zeile betrachtet die Spalten zu sein.

df.columns 

Ausgänge

Index(['0.098722', '08l23252', '243434214', '5', 'True'], dtype='object') 

Wie füge ich eine Zeile, so dass die aktuellen „Spalten“ Werte Zeile nach unten in die Datentabelle verschiebt, und ich konnte Spalten von tatsächlichen Spaltennamen umbenennen?

Im Moment kann ich nicht versuchen,

df.columns = ['A1', 'B1', 'C1', 'D1', 'E1'] 

, da dies einfach diese Zeile löscht und überschreibt die Werte mit A1, B1 usw.

A1  B1  C1  D1  E1 
1 0.283421 1.224234 7.823421 2   False 
2 -1.135632 1.212112 -0.173215 4   False 
3  2.34  0.271 0.0932 4   True 
4 0.119209 -1.044236 -0.861849 4   True 
.... 

Antwort

3

try this:

df = pd.read_table(data, names=['A1', 'B1', 'C1', 'D1', 'E1'], header=None) 

von docs:

Namen: Array-like, verwenden Keine

Liste der Spaltennamen Standard. Wenn die Datei keine Kopfzeile enthält, sollten Sie explizit header = None übergeben.

2

Parameter hinzufügen names:

df = pd.read_table(datan, names=['A1', 'B1', 'C1', 'D1', 'E1']) 

Aber es sieht besser ID read_csv:

import pandas as pd 
import io 

temp=u""" 
9,40 
1,70""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), names=['b','m']) 
print (df) 
    b m 
0 9 40 
1 1 70