【问题标题】:Python DataFrame error for having a header with parenthesis带有括号的标头的 Python DataFrame 错误
【发布时间】:2016-09-29 20:47:40
【问题描述】:

我对 python 和一般编程非常陌生。我有一个 CSV 文件,其中第一列作为字符串标题。

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' 对象没有属性 '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)

【问题讨论】:

    标签: python pandas matplotlib dataframe


    【解决方案1】:

    您应该考虑通过.(点)运算符访问您的列是一种特权便利。它可以在许多情况下破坏,有时甚至会悄无声息地破坏。如果您想访问该列,请使用 []loc[]iloc[]

    括号是破坏. 访问器范例的条件之一。

    你的情况
    不要这样做

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

    改为

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

    【讨论】:

    • 谢谢你的工作。你有关于这个主题方式的任何指南吗?我对编码和 python 非常陌生,我正在阅读的一些用于绘图的文档我不明白。我希望能够绘制多列的子图,因此您知道的任何新手友好指南都可以帮助我,您可以指出这将是很棒的。
    • 转到 wiki stackoverflow.com/tags/pandas/info 并查看底部的书籍。我买了韦斯麦金尼的书。找到你想做的事情并提出很多问题对你来说比其他任何事情都更有用。少担心提出更好的问题,多担心提出更好的问题。阅读stackoverflow.com/help/mcvestackoverflow.com/q/20109391/2336654
    猜你喜欢
    • 2012-08-12
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多