python - 从数据框创建曲线
问题描述
我有一个看起来像这样的数据框:
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: unhashable type: 'numpy.ndarray'
请注意,我试图绘制只是为了看看我得到了什么,最终目标是计算每对曲线下的面积并将其添加到所有对。亨斯for loop
.
更新
我认为找到了问题的根源,行调用Columns #
用作标题而不是标量值。我试过df2.iat[index,columns]
但没有成功。
解决方案
要更改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()
推荐阅读
- walmart-api - Walmart Orders API:无论我设置什么限制,我总是返回 40 个结果
- azure - 逻辑应用,如何使用 Liquid 转换 JSON 数组
- python - 如何使用 python 数据表库从值矩阵(列表列表)和特征列表创建数据表数据框
- javascript - 当承诺解决或拒绝时检测有效负载
- react-redux - React-redux 通过单个按钮将产品添加到购物车
- python - 如何从启动页面在不同的 tkinter 画布之间切换并返回子画布中的启动页面
- python - Python 上的 VLOOKUP
- html - 无法输入文本输入字段(Vue.js)
- json - 在 F# 中使用 JSON.NET 从 JSON 中删除字段
- spring-boot - 使用springboot将数据从mysql传递到kafka的最佳方法是什么