【问题标题】:Iteratively passing column names as arguments to plot() function pandas迭代地将列名作为参数传递给 plot() 函数 pandas
【发布时间】:2018-09-30 06:12:16
【问题描述】:

我想迭代地将 col 名称分配给我拥有的每个列名称的值 s。我已经尝试了一切,但无法通过这个。以下代码抛出错误:

for i in continuous_data.columns :
   plt.figure()
   continuous_data.plot(x="Lattitude", y="Longtitude", kind="scatter",alpha=0.4,figsize=(12,10),c="Price",colormap="gist_rainbow",s=continuous_data.i,colorbar=True)
   plt.legend()

错误是:

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-2489dccddba7> in <module>()
      1 for i in continuous_data.columns :
      2     plt.figure()
----> 3     continuous_data.plot(x="Lattitude", y="Longtitude", kind="scatter", alpha=0.4,figsize=(12,10),c="Price",colormap="gist_rainbow",s=continuous_data.i,colorbar=True)
      4     plt.legend()

/opt/conda/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
   3612             if name in self._info_axis:
   3613                 return self[name]
-> 3614             return object.__getattribute__(self, name)
   3615 
   3616     def __setattr__(self, name, value):

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

<matplotlib.figure.Figure at 0x7ff9c144aa58>

当我执行以下操作时,它会产生正确的列名:

    for i in continuous_data.columns:
    print(i)
Rooms
Price
Distance
Postcode
Bedroom2
Bathroom
Car
BuildingArea
Landsize
Lattitude
Longtitude
Propertycount

你们能帮我解决这个问题吗? Kaggle上内核的链接是:https://www.kaggle.com/shinydhar/melbourne-housing-analysis

【问题讨论】:

    标签: pandas matplotlib iteration data-visualization data-science


    【解决方案1】:

    问题出在

    s=continuous_data.i
    

    对您而言,很明显它表示您正在迭代的列i。对 Pandas 来说,这是

    s=continuous_data['i']
    

    而您的 DataFrame 显然没有这样的列(无论如何这不是您的意思)。

    只需将其替换为

    s=continuous_data[i]
    

    【讨论】:

    • 让我试试。是的,这完全有道理
    • 这个sn-p真的很慢。有没有更好的方法来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多