如何修复 AttributeError:“系列”对象没有“查找”属性?

Posted

技术标签:

【中文标题】如何修复 AttributeError:“系列”对象没有“查找”属性?【英文标题】:How to fix AttributeError: 'Series' object has no attribute 'find'? 【发布时间】:2015-06-08 20:17:43 【问题描述】:

我正在尝试使用一些在线数据,但由于绘图函数中的“属性”错误而无法绘制它

# Reading data from an online data sets
import pandas as pd
import requests, zipfile, StringIO
r = requests.get('https://archive.ics.uci.edu/ml/machine-learning-databases/00287/Activity Recognition from Single Chest-Mounted Accelerometer.zip')
z = zipfile.ZipFile(StringIO.StringIO(r.content))
activity_files = [name for name in z.namelist() if name.endswith('.csv')]

# Loading it to a pandas dataframe
z_data = z.read(activity_files[4]).split('\n')
activity_data = pd.DataFrame([z.split(',') for z in z_data], columns=('Seq','Ax','Ay','Az','Label'))


# Filtering
working_desk_data = activity_data[activity_data.Label == '1']
standing_data = activity_data[activity_data.Label == '3']
walking_data = activity_data[activity_data.Label == '4']

# Plotting
plt.plot(walking_data['Seq'], walking_data['Ax']) # <--- Error
plt.plot(walking_data['Seq'], walking_data['Ay']) # <--- Error
plt.plot(walking_data['Seq'], walking_data['Az']) # <--- Error
plt.show()

任何解决方法或指出我正确的方向会有所帮助吗?我可以绘制以下内容,所以我显然误解了上面的内容。

plt.plot(range(1,5), [1,2,1,2])
plt.show()

编辑:(为 Julien Spronck 添加数据)

walking_data.head()
Out[12]:
Seq Ax  Ay  Az  Label
22950   22950   1978    2386    1988    4
22951   22951   1977    2387    1990    4
22952   22952   1983    2390    1994    4
22953   22953   1978    2396    1994    4
22954   22954   1980    2387    1992    4

walking_data.columns
Out[79]:
Index([u'Seq', u'Ax', u'Ay', u'Az', u'Label'], dtype='object')
In [80]:

type(walking_data.Seq)
Out[80]:
pandas.core.series.Series
In [81]:

type(walking_data.Ax)
Out[81]:
pandas.core.series.Series

【问题讨论】:

你能告诉我们walking_data是什么样的吗? @JulienSprock 添加了 发布您得到的整个错误会很有用,尤其是当您尝试 DSM 的答案时。 【参考方案1】:

plot 感到困惑,因为您传递的是字符串,而不是数字。如果您将它们转换为(比如说)floats:

walking_data = walking_data.astype(float)

然后你会得到

【讨论】:

我确实尝试过,但仍然不适合我 ValueError: could not convert string to float: - 可能是由于缺少值吗?我怎样才能绕过 NaN? 缺失值可以使用data.fillna(value='')。对于ValueError,您可以使用tryexcept ValueError, e,然后您可以捕获不良数据并将其替换为一些默认值。【参考方案2】:

使用DataFrame plot 方法:

walking_data.plot('Seq', ,'Ax')

【讨论】:

以上是关于如何修复 AttributeError:“系列”对象没有“查找”属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复AttributeError:模块'numpy'没有属性'square'[关闭]

如何修复“AttributeError:模块'tensorflow'没有属性'get_default_graph'”?

如何修复python2.7中的“AttributeError:'module'对象没有属性'storage'”错误

如何修复此 AttributeError:“SubRequest”对象没有属性“getfuncargvalue”?

如何修复 AttributeError:“列表”对象没有属性“编码”

如何修复 AttributeError:“Image”对象没有“seek”属性。您是说:“种子”吗?