迭代地将列名作为参数传递给 plot() 函数 pandas

Iteratively passing column names as arguments to plot() function pandas

我想为我拥有的每个列名迭代地将列名分配给值 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

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

问题在于

s=continuous_data.i

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

s=continuous_data['i']

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

只需将其替换为

s=continuous_data[i]