2016-07-18 5 views
0

Iは、次パンダのデータフレームを有する:Pandas Dataframeで列の行をシフトダウンして列の値を再割り当てするにはどうすればよいですか?

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 
.... 
filename.dat

内のデータがそのような最初の行が列と見なされる保存されます。

df.columns 

出力

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

は、どのように私は、現在の「列」の値の行は、データテーブルにシフトダウンするような行を追加しない、と私は、実際の列名によって列の名前を変更するだろうか?

瞬間、私はなど、単純にこの行を消去し、A1で値を上書きし、B1このよう

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

を試すことができません

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 
.... 

答えて

3

この試してみてください。docsから

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

を:

:配列のような、使用する列名のなし

リストをデフォルト。 ファイルにヘッダー行が含まれていない場合は、明示的にheader = Noneを渡す必要があります。

2

パラメータnamesを追加します。

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

しかし、それは良い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 
関連する問題