[英]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.