簡體   English   中英

循環瀏覽matplotlib中數據框列圖的列表

[英]Loop through a list for dataframe column plot in matplotlib

我一直在嘗試遍歷此19000個元組的列表,並讓matplot lib根據數據幀中列的鍵值來繪制它們,但無法繪制出來。

import os
import pandas as pd
os.chdir('/home/xyzcsv')


%matplotlib inline
from pylab import *
with open('list_tuple.txt','rb') as file:
    a = file.readlines()


df = pd.read_csv('20130831_000000.csv')

def createtuple(cola,colb):
    names = df.cola
    names1 = df.colb
    X = []
    y = []
    for i in range(len(names)):
        if names[i] <=float(0) or names1[i]<=float(0):
            pass
        else:
            X.append([names1[i],names[i]])
            y.append(i+1)
    X = np.array(X)
    y = np.array(y)
    return (X,y)

def plotgraph():
    plt.figure(figsize=(10, 6))
    plt.scatter(X[:,0], X[:,1],c=y.astype(np.float),alpha=.5)
    plt.show()

for i in range(len(a)):
    b = a[i].split("'")
    (X,y) = createtuple(b[1],b[3])
    plotgraph()

我得到的錯誤是:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-12-11551e9515fa> in <module>()
     31     b = a[i].split("'")
     32     print b
---> 33     (X,y) = createtuple(b[1],b[3])
     34     plotgraph()

<ipython-input-12-11551e9515fa> in createtuple(cola, colb)
      9 
     10 def createtuple(cola,colb):
---> 11     names = df.cola
     12     names1 = df.colb
     13     X = []

/home/bigdata/anaconda2/lib/python2.7/site-packages/pandas/core/generic.pyc in __getattr__(self, name)
   2667             if name in self._info_axis:
   2668                 return self[name]
-> 2669             return object.__getattribute__(self, name)
   2670 
   2671     def __setattr__(self, name, value):

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

如何使用字符串串聯調用dataframe列?

使用下標按字符串名稱返回列:

names = df[cola]
names1 = df[colb]

通過嘗試將cols作為屬性訪問,由於cola不是屬性而失敗,但是如果將列名稱傳遞給下標,則它將返回該列

我也強烈建議養成永遠不要將列作為屬性訪問的習慣,因為它會產生奇怪的行為,尤其是當您具有與現有屬性或方法匹配的列名時,例如,您有一個列名sum然后調用df.sum返回方法的地址sum()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM