2017-03-06 73 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