Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从连续时间戳中提取数据集的离散时间戳值_Python_Pandas_Datetime_Indexing_Timestamp - Fatal编程技术网

Python 从连续时间戳中提取数据集的离散时间戳值

Python 从连续时间戳中提取数据集的离散时间戳值,python,pandas,datetime,indexing,timestamp,Python,Pandas,Datetime,Indexing,Timestamp,我有一个每分钟都有数据点的数据集,比如说df_cont的值具有累积递增的数字 Value datetimeindex 09:00:00 34 09:01:00 45 09:02:00 48 09:03:00 50 . . . . . . 18:58:00 55 18:59:00

我有一个每分钟都有数据点的数据集,比如说df_cont的具有累积递增的数字

                Value
datetimeindex  
09:00:00         34
09:01:00         45
09:02:00         48
09:03:00         50
.                .
.                .
.                .
18:58:00         55
18:59:00         65
19:00:00         68
我有另一个数据集,只有时间值,比如df_time

Time_1       Time_2
09:05:00     09:15:00
10:05:00     10:25:00
11:55:00     12:15:00
17:05:00     17:15:00
现在,必须找出时间_1和时间_2之间的时间差的时间戳中的“值”的差异

我可以使用DateTime功能手动执行此操作

df_cont["2020-5-14 09:05:00":"2020-5-14 09:15:00"].Value.max() - df["2020-5-14 09:05:00":"2020-5-14 09:15:00"].Value.min()

但是,无法通过循环或使用pandas的某些其他功能自动完成此操作,以消除时间戳的所有差异。任何帮助都将不胜感激。

您必须根据时间1和时间2加入,然后计算差异。在您的情况下,可能需要重置索引

df_cont = pd.DataFrame({'time':[1, 2, 3, 4, 5, 6], 'Value':[45, 48, 53, 55, 60, 64]})
df_time = pd.DataFrame({'time1':[1, 2, 5], 'time2':[3, 4, 6]})

df = (df_time.merge(df_cont.rename(columns={'time':'time1', 'Value':'value1'}), on='time1')
                  .merge(df_cont.rename(columns={'time':'time2', 'Value':'value2'}), on='time2'))

df['value_diff'] = df['value2'] - df['value1']
您可以通过以下方式进行分组:

结果:

[2020-06-02 09:05:00, 2020-06-02 09:15:00]    10
[2020-06-02 10:05:00, 2020-06-02 10:25:00]    20
[2020-06-02 11:55:00, 2020-06-02 12:15:00]    60
[2020-06-02 17:05:00, 2020-06-02 17:15:00]    10
[2020-06-02 09:05:00, 2020-06-02 09:15:00]    10
[2020-06-02 10:05:00, 2020-06-02 10:25:00]    20
[2020-06-02 11:55:00, 2020-06-02 12:15:00]    60
[2020-06-02 17:05:00, 2020-06-02 17:15:00]    10