2017-03-06 41 views
1

我有一個daframe df情節都在大熊貓對索引行中值

beat1 beat2 beat3 beat4 beat5 beat6 beat7 beat8 beat9 
0 0.6839 0.8879 0.7543 0.4805 0.8528 0.6982 0.5520 0.6154 0.6579 
1 1.0380 0.4868 0.3099 0.4994 0.7509 0.4649 0.5080 0.4040 0.7537 
2 0.7116 0.8063 0.6754 0.7365 0.9517 0.6420 0.8108 0.9082 0.7132 
3 0.7296 0.7389 0.7227 0.7623 0.7424 0.7457 0.8250 0.7064 0.7792 
4 0.8912 0.8617 0.8189 0.8118 0.6574 0.8882 0.6544 0.8296 0.9344 

現在,我想要繪製在一個給定的行中的所有值作爲指數的函數值[0, 1, 2, 3, 4]。我可以用下面的代碼實現這一點:

for i in df.index: 
    vals = df.loc[i] 
    for val in vals: 
     plt.scatter(i, val,c='g') 

plt.show() 

但是,必須有一種方法做同樣沒有因爲它是更大dataframes慢,我需要這個多次做使用嵌套的for循環。有任何想法嗎?

+0

隨意給予好評選定的答案,以及對節目額外的感謝 – piRSquared

回答

2

您可以將散點圖每一行:

df.apply(lambda x: plt.scatter(x.index, x, c='g')) 
plt.show() 
0
plt.scatter(df.index.values.repeat(len(df.columns)), df.values.ravel()) 

enter image description here


df.stack().reset_index(0).plot.scatter('level_0', 0) 

enter image description here