2016-09-29 69 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