首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataFrame的导数

DataFrame的导数
EN

Stack Overflow用户
提问于 2021-03-17 16:41:54
回答 1查看 101关注 0票数 2

我正在处理两个数据帧,让我们将它们命名为时间和电压,它们的形状是2201行x 8列。

数据帧的第一行和最后一行分别是(时间和电压):

代码语言:javascript
复制
               A = 2.90 V           A = 3.00 V           A = 3.10 V           A = 3.20 V           A = 3.30 V           A = 3.40 V           A = 3.50 V           A = 4.90 V
0            0.000000e+00         0.000000e+00         0.000000e+00         0.000000e+00         0.000000e+00         0.000000e+00         0.000000e+00         0.000000e+00
1            2.000000e-09         2.000000e-09         2.000000e-09         2.000000e-09         2.000000e-09         2.000000e-09         2.000000e-09         2.000000e-09
2            4.000000e-09         4.000000e-09         4.000000e-09         4.000000e-09         4.000000e-09         4.000000e-09         4.000000e-09         4.000000e-09
3            6.000000e-09         6.000000e-09         6.000000e-09         6.000000e-09         6.000000e-09         6.000000e-09         6.000000e-09         6.000000e-09
4            8.000000e-09         8.000000e-09         8.000000e-09         8.000000e-09         8.000000e-09         8.000000e-09         8.000000e-09         8.000000e-09
...                   ...                  ...                  ...                  ...                  ...                  ...                  ...                  ...
2196         4.392000e-06         4.392000e-06         4.392000e-06         4.392000e-06         4.392000e-06         4.392000e-06         4.392000e-06         4.392000e-06
2197         4.394000e-06         4.394000e-06         4.394000e-06         4.394000e-06         4.394000e-06         4.394000e-06         4.394000e-06         4.394000e-06
2198         4.396000e-06         4.396000e-06         4.396000e-06         4.396000e-06         4.396000e-06         4.396000e-06         4.396000e-06         4.396000e-06
2199         4.398000e-06         4.398000e-06         4.398000e-06         4.398000e-06         4.398000e-06         4.398000e-06         4.398000e-06         4.398000e-06
2200         4.400000e-06         4.400000e-06         4.400000e-06         4.400000e-06         4.400000e-06         4.400000e-06         4.400000e-06         4.400000e-06

[2201 rows x 8 columns]
               A = 2.90 V           A = 3.00 V           A = 3.10 V           A = 3.20 V           A = 3.30 V           A = 3.40 V           A = 3.50 V           A = 4.90 V
0                0.003537             0.007219             0.012674             0.017294             0.022206             0.027240             0.032120             0.106918
1                0.003532             0.007214             0.012666             0.017288             0.022212             0.027280             0.032082             0.106855
2                0.003537             0.007217             0.012677             0.017342             0.022264             0.027290             0.032008             0.106764
3                0.003535             0.007221             0.012671             0.017352             0.022236             0.027307             0.032054             0.106809
4                0.003539             0.007224             0.012675             0.017336             0.022244             0.027320             0.032064             0.106836
...                   ...                  ...                  ...                  ...                  ...                  ...                  ...                  ...
2196             0.000399             0.000490             0.000579             0.000164             0.000176             0.000230             0.000238             0.000336
2197             0.000406             0.000495             0.000578             0.000146             0.000216             0.000237             0.000252             0.000227
2198             0.000405             0.000495             0.000577             0.000188             0.000192             0.000273             0.000230             0.000264
2199             0.000402             0.000494             0.000573             0.000138             0.000216             0.000193             0.000240             0.000200
2200             0.000408             0.000492             0.000572             0.000170             0.000210             0.000253             0.000224             0.000373

我可以很容易地画出每一列的曲线(电压与时间)。我想要得到电压数据帧关于时间数据帧的导数,或者它在数学上的相同之处(数据电压/数据时间),然后绘制(数据电压/数据时间)与时间的关系图。

我已经尝试了以下代码:

代码语言:javascript
复制
def Derivative():
    dV_dt = []
    for c in range(len(V.columns)):
        dn = derivative(V.iloc[:,c], time.iloc[:,c], dx=time.iloc[:,c])
        dV_dt.append(dn)
    dV_dt = pd.DataFrame(dV_dt)
    print(dV_dt)

引发以下错误:

代码语言:javascript
复制
  File "C:\ProgramData\Anaconda3\Lib\site-packages\scipy\misc\common.py", line 119, in derivative
    val += weights[k]*func(x0+(k-ho)*dx,*args)
TypeError: 'Series' object is not callable

有谁知道如何解决这个问题吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 17:16:26

您可以尝试以下操作:

代码语言:javascript
复制
import pandas as pd
import numpy as np
V = pd.DataFrame(np.random.rand(2201, 8)*10)
time = pd.DataFrame(np.random.rand(2201, 8))
dV_dt = pd.DataFrame([np.diff(V[i])/np.diff(time[i]) for i in V.columns])
print (V,time,dV_dt)

请注意,生成的dV_dt比原始的两个数据帧少了一行(仅2200行)。因为导数是在两个相应值之间求导。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66669572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档