2016-10-03 115 views
0

我的程序列出了CSV文件的標題給用戶,並要求他選擇一個x和一個y來繪圖。它工作正常,但我不希望用戶輸入標題字符串。我寧願找到每個標題的索引,並要求他輸入一個數字。我的csv文件看起來如下:如何在Python中的csv文件中找到頭的索引?

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

目前,用戶必須爲X,速度(m/s)的打出來,我寧願數據顯示了這樣的事情,並讓用戶只需鍵入2.

1.time(s),2.speed(m/s),3.alt_a(m) 

我在過去兩天看了很多,我似乎無法找到任何有關我如何開始這樣做的信息。

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

你可以得到df.columns頭,

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) 

第一行創建您指定1.time(s),2.speed(m/s),3.alt_a(m)並打印格式的標題列表。

"{0}.{1}".format(i,x)創建的格式爲「IX」的字符串,其中i是一個計數器,x是標頭

第二行詢問的輸入到用戶的元件,這將是該指數0,1,2..根據到之前的列表。

在第三行中,df.columns[x_index]是用戶選擇的標題。

+0

你能詳細介紹一下代碼嗎?它究竟做了什麼?什麼是raw_input?對不起,我對Python非常陌生。 –

+0

我編輯我的答案以添加更多詳細信息 – JMat

+0

OP正在使用python 3,如果您的示例執行相同操作,它可能不那麼令人困惑! – tdelaney

相關問題