从数据框创建曲线

时间:2019-02-27 16:36:41

标签: python pandas matplotlib area curve

我有一个看起来像这样的数据框:

                  0        1       2     ...         147      148      149
Columns 0       190.2    190.5   189.9   ...       146.7    146.4    146.1
Values  0    -49.3892 -47.0297 -39.528   ...    -30.7926 -30.7561  -30.719
Columns 1       190.2    190.5   189.9   ...       146.7    146.4    146.1
Values  1    -49.3892 -47.0297 -39.528   ...    -30.7926 -30.7561  -30.719
Columns 2       190.2    190.5   189.9   ...       146.7    146.4    146.1

我想为每对Columns #Value #创建一条曲线。数据帧有3478行,因此有1738对数据。

我尝试过的for loop如下:

 import matplotlib.pyplot as plt
 nline2 = len(df2.index)
 for i in range (0,(nline-2),2)
    x_data = df2.values[[i]]
    y_data = df2.values[[(i+1)]]
    plt.plot(x_data,y_data)

但是我收到一条错误消息:TypeError:无法散列的类型:'numpy.ndarray'

请注意,我试图绘制图表只是为了查看得到的结果,这是计算每对曲线下的面积并将其用于所有对的最终目的。提示for loop

更新

我认为找到问题的根源,被称为Columns #的行用作标头而不是标量值。我尝试了df2.iat[index,columns],但没有成功。

1 个答案:

答案 0 :(得分:0)

要更改Columns #行的值,我使用了:

df2 = df2.apply(pd.to_numeric)

然后出于只绘制第一对的目的:

i = 0

x_data = df2.values[[i]]
y_data = df2.values[[(i+1)]]

#line = plt.plot(x_data, y_data)
#plt.setp(line, color = 'r', linewidth = 2.0)

line = plt.Line2D(x_data, y_data,linewidth = 2)
plt.show()