2017-09-18 38 views
0

我有一个数据帧(DF)10行的情节熊猫数据帧寻找这样的Python:型系列

-2.00 [-24.4907, -24.4594, -24.4321, -24.4012, -24.3... 
-1.75 [-23.8154, -23.7849, -23.7601, -23.7326, -23.7... 
-1.00 [-23.7131, -23.6954, -23.6767, -23.6616, -23.6... 
-0.75 [-22.7675, -22.7505, -22.741, -22.7173, -22.70... 
-0.50 [-22.0693, -22.0718, -22.0481, -22.0328, -22.0... 
0.50 [-15.8461, -15.8247, -15.7963, -15.7784, -15.7... 
1.00 [-7.32122, -7.27283, -7.2336, -7.19238, -7.153... 
1.25 [-3.44732, -3.37547, -3.30565, -3.23125, -3.15... 
1.75 [0.541327, 0.568081, 0.597821, 0.627494, 0.667... 
2.50 [3.63716, 3.68494, 3.73379, 3.77966, 3.82584, ... 
dtype: object 

我不是100%肯定,但我认为它包含ndarrays,我给你我有的信息:

type(df) 
pandas.core.series.Series 

whos 
df Series -2.00 [-24.4907, -24.4<...>82584, ...\ndtype: object 

无论如何,我想绘制所有这些数组在一个情节。我能够使用阴谋

plt.plot(df[1]) 

One row plotted

而且一个阵列,因为我有一个类型的数据框 “系列” 我希望用

df.plot 
plt.plot() 

All rows plotted

将是解决方案,但它不会绘制任何内容。你知道我做错了什么吗?

+1

是一个神经细胞动作电位我看? –

+0

假设你的数据就像回答中指出的那样,试试'pd.DataFrame(df ['values']。values.tolist(),index = df ['id'])。plot(subplots = True)'? – Zero

+0

@JonDeaton哈哈是啊它是^^ –

回答

1

你必须运行一个for循环并用你想要的数据重复地调用plt.plot()。当你走出for循环时,比如说plt.show(),你所有的图都应该被添加到同一个图中。这里是我工作:

import matplotlib.pyplot as plt 
import pandas as pd 
import numpy as np 

val_list = [np.array([1,2]), np.array([4,3])] 
data = {"id": [1,2], 
     "values": val_list 
     } 
df = pd.DataFrame(data) 
for i in range(2): 
    plt.plot(df.iloc[:, 0], df.iloc[i, 1]) 
    plt.plot(df.iloc[:, 0], df.iloc[i, 1]) 
plt.show() 

上面的代码中加入两条曲线,以我的身材

+0

感谢您的想法!尽管我总是尽量避免使用for-loops,你认为有没有一种方法可以在没有for-loop的情况下进行绘制? –