2015-12-14 106 views
0

我是新來的stackoverflow。我的數據框與下面給出的相似。我想繪製這個數據,以便我可以分別獲得A的活動情況,B的活動情況和C的活動情況。使用熊貓來繪製數據

我該如何使用熊貓來完成此操作?

Name Date   Activity 
A  01-02-2015  1 
A  01-03-2015  2 
A  01-04-2015  3 
A  01-04-2015  1 
B  01-02-2015  1 
B  01-02-2015  2 
B  01-03-2015  1 
B  01-04-2015  5 
C  01-31-2015  1 
+0

'pandas'有一個非常好的文檔。在這裏看到一些關於[可視化]的例子(http://pandas.pydata.org/pandas-docs/stable/visualization.html)。 – iled

回答

2

另一種方法將包括pivot。根據你的價值觀

df = df.set_index('Date') 

,然後轉動表:從您的數據框中df開始,我會索引設置爲Date

d = pd.pivot_table(df,index=df.index, columns='Name', values='Activity').fillna(0) 

這將返回此結構:

Name  A B C 
Date     
2015-01-02 1 1.5 0 
2015-01-03 2 1.0 0 
2015-01-04 2 5.0 0 
2015-01-31 0 0.0 1 

並根據您的需求,您可以簡單地將其繪製爲:

d.plot() 

實際上,您在示例中有一些重複的值,但現在情節如下所示。希望有所幫助。

enter image description here

+0

有沒有辦法爲每個A,B和C創建子數據幀 – 1974sb

0

使用matplotlib。在那裏,你可以使用:

import matplotlib.pyplot as plt 
plt.figure() 
plt.plot(df.ix[df.Name == 'A', ['Date', 'Activity']]) 
plt.plot(df.ix[df.Name == 'B', ['Date', 'Activity']]) 
plt.plot(df.ix[df.Name == 'C', ['Date', 'Activity']]) 
plt.show() 

假設df是你的熊貓DataFrame

+0

也許'plt.plot(df.ix [df.Name =='A',['Date','Activity']])'? – lowtech

+0

eeeh你是對的!當我回答OP的問題中的df代碼窗口是純文本,所以我沒有注意到,並且無法編輯它bc有待處理的編輯...更正! – mirosval