2016-09-29 26 views
1

我對python和編程一般都很陌生。我有一個CSV文件,第一列作爲字符串標題。帶有圓括號的標題的Python DataFrame錯誤

time, speed(m/s), distance(m) 
2,6,20 
3,2,10 

etc.. 

我所試圖做的是一個程序,它會吐出一堆根據我選擇的圖形。例如時間與速度。或時間與速度和距離。

我的第一個問題是,每當我試圖繪製的東西,有一個括號中的名字,例如:

df.Accel_Y(g).plot(color='r',lw=1.3) 

我收到的錯誤:

AttributeError: 'DataFrame' object has no attribute 'Accel_Y'

它,如果我嘗試正常工作用不含圓括號的不同列。

我試着將accel_y(g)賦值給一個字母,例如z。然後這樣做:

f.z.plot(color='r',lw=1.3) 

那也沒有工作。

這裏是我的代碼:

import pandas as pd 
from pandas import DataFrame, read_csv 
import numpy as np 
import matplotlib.pyplot as plt 


df = pd.DataFrame.from_csv('Flight102_Complete.csv') 
df.KestrelTime.plot(color='g',lw=1.3) 
df.Accel_Y(g).plot(color='r',lw=1.3) 
print (df) 

回答

1

你應該考慮通過.(點)經營者訪問你的列特權的便利。它可以在很多情況下打破,有時候會默默地打破。如果您想訪問列,請使用[]loc[]iloc[]

括號是將打破.訪問器範例的條件之一。

在你的情況
不要做

df.Accel_Y(g).plot(color='r', lw=1.3) 

而是做

df['Accel_Y(g)'].plot(color='r', lw=1.3) 
+0

謝謝你的工作。你有這方面的任何指導方式我很新的編碼和python和一些我正在閱讀的繪圖文檔,我不明白。我希望能夠做到多列的小塊情節,所以任何小巧友好的指導你知道這可以幫助我,你可以指出,這將是真棒。 – Doc

+1

轉到wiki http://stackoverflow.com/tags/pandas/info並查看底部的書籍。我買了Wes Mckinney的書。找到你想要做的事情並提出許多問題,對你而言將會比其他事情做得更多。不要擔心提出更好的問題,更需要提出更好的問題。閱讀http://stackoverflow.com/help/mcve和http://stackoverflow.com/q/20109391/2336654 – piRSquared