2016-10-03 13 views
0

私のプログラムは、CSVファイルのヘッダをユーザにリストアップし、プロットするためにxとyを選ぶように頼みます。それは正常に動作しますが、私はユーザーがヘッダー文字列を入力しないようにします。むしろヘッダーのそれぞれのインデックスを見つけて、代わりに数字を入力するように頼んでいます。Pythonでcsvファイルのヘッダーのインデックスを検索するにはどうすればよいですか?

time(s),speed(m/s),alt_a(m),.... 
25,62,10 
45,70,20 
30,50,30 

を現在、私はむしろ、データがこのような何かを示しており、ユーザーがちょうど2

を入力しなければならないユーザーは、X、スピード(メートル/秒)のために入力する必要があり、次のように私のcsvファイルを検索します
1.time(s),2.speed(m/s),3.alt_a(m) 

私は過去2日間に多く見えました。私はこのことをやり始めてどういう情報も見つけられないようです。

import pandas as pd 

df = pd.DataFrame.from_csv('data.csv',index_col=False) 

while True: 
    print (list(df)) 
    print ('Select X-Axis') 
    xaxis = input() 
    print ('Select Y-Axis') 
    yaxis = input() 
    break 

df.plot(x= xaxis, y= yaxis1) 

答えて

0

あなたは最初の行は、あなたが1.time(s),2.speed(m/s),3.alt_a(m)を指定した形式でヘッダーのリストを作成し、それを印刷し

print(", ".join(["{0}.{1}".format(i,x) for i,x in enumerate(df.columns)])) 
x_index = input("index of the x series:") 
x_header = df.columns[x_index] 
y_index = input("index of the y series:") 
y_header = df.columns[y_index] 
df.plot(x= x_header , y= y_header) 

df.columnsとヘッダを得ることができます。

"{0}.{1}".format(i,x) iはカウンタでフォーマット「IX」の文字列を作成し、xがに応じてインデックス0,1,2..あろう第二行は、ユーザに入力を要求し

ヘッダの要素であります前のリスト

3行目のdf.columns[x_index]は、ユーザーが選択したヘッダーです。

+0

コードで少し詳しく説明できますか?それは正確に何をするのですか? raw_inputには何が入っていますか?すみません、私は非常にPythonに新しいです。 –

+0

私の答えを編集して詳細を追加しました – JMat

+0

OPはPython 3を使用していますが、あなたの例が同じであれば、あまり混乱しないでしょう! – tdelaney

関連する問題