2014-05-07 23 views
0

我有一個函數,它需要在散點圖上繪製Pandas列。我想使用列的名稱作爲軸標籤。下面是我的意思的一個例子:從熊貓列索引中提取列名稱

def plotscatter(x,y): 
    plt.scatter(x, y) 
    plt.xlabel(x) 
    plt.ylabel(y) 
plotscatter(df['1stcol'],df['2ndcol']) 

我想只提取引號中的文本,即1stcol和2ndcol。如果我按照原樣使用x和y,我會得到列名,然後是所有值作爲軸標籤。

有沒有一個內置的方法或函數呢?像x.columnname()

+0

除了我的回答你的問題,其他的建議:你也可以使用'plot'方法是:'df.plot(X = '1stcol',Y = '2ndcol',善良='scatter')' – joris

回答

1

您可以通過DataFrame.columns或列Series.name訪問列名稱。舉個例子:

In [11]: df = pd.DataFrame([[1,2],[2,4]], columns=['1stcol', '2ndcol']) 

In [13]: df.columns 
Out[13]: Index([u'1stcol', u'2ndcol'], dtype='object') 

In [14]: df.columns[0] 
Out[14]: '1stcol' 

In [16]: df['1stcol'].name 
Out[16]: '1stcol' 
+0

感謝您的回覆。我試着在輸入中使用'.columns',但是作爲函數的輸入是來自'DataFrame'的列,即'df ['somecolumn']'。我得到一個屬性錯誤AttributeError:'Series'對象沒有'column''屬性。有什麼辦法可以解決這個問題嗎? – Bprodz

+1

看到我的回答,我還爲列(這是Serieses)輸入'.name' – joris

+0

對不起,我的錯是因爲沒有徹底閱讀。 '.name'正是我所需要的。 – Bprodz