python - AttributeError:“str”对象没有属性“hist”
问题描述
我有一个包含以下变量的数据集。
df.iloc[:, [8, 10,12,14,16]]
m1 m2 m3 m4 m5
0 1.465425 0.369512 0.195093 0.090899 0.075437
1 1.090584 0.630911 0.289951 0.169461 0.065148
2 8.393636 1.147147 0.406641 0.388952 0.284973
3 1.089455 0.265552 0.124755 0.074697 0.066011
4 0.809997 0.465886 0.187011 0.114472 0.049296
5 6.213920 0.820291 0.241337 0.178089 0.169355
6 0.854443 0.327344 0.180940 0.081440 0.066603
7 0.640819 0.581226 0.181652 0.162496 0.072640
8 4.916334 1.024343 0.556189 0.310475 0.301980
9 1.481441 0.318333 0.190325 0.101531 0.070593
10 1.103429 0.569323 0.196212 0.174342 0.097093
我正在尝试通过此代码叠加直方图:
plotname=["m1", "m2","m3","m4","m5"]
count=0
for var in df.iloc[:, [8,10,12,14,16]]:
print(var, count)
var.hist(var, label=plotname[count])
count=count+1
它失败并显示以下错误消息:
m1 0
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-67-5a27316eb0a9> in <module>()
3 for var in df.iloc[:, [8,10,12,14,16]]:
4 print(var, count)
----> 5 var.hist(var, label=plotname[count])
6 count=count+1
AttributeError: 'str' object has no attribute 'hist'
如何在 pandas 数据框的列上创建 for 循环并通过类似的代码样式绘制它?
谢谢,
解决方案
你可以这样做:
plotname=["m1","m2","m3","m4","m5"]
for index, var in enumerate(df.iloc[:, [8,10,12,14,16]]):
print(var, index)
df[var].hist(df[var], label=plotname[index])
plt.show()
推荐阅读
- python - 继续获取 for 循环中的最后一个值
- c++ - 如何在 C++ 中定义具有“n”行和“m”列的多维数组并使用 For 循环迭代值?
- javascript - 如何解决referenceerror模块未定义
- python - 在 Python 中比较没有日期的两次?
- angular - 以高角度导出带有所有工具提示的图像
- django - 继承django表单字段的正确方法
- arrays - 如何在numpy中创建一个连续数字数组?
- javascript - 破坏函数Javascript的最佳方法
- wordpress - 如何使用 WordPress WP-Bakery 中的单个模板或多个页面的任何插件制作城市页面?
- python - 为什么尝试/异常方法不适用于我的 python?