Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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_Dataframe - Fatal编程技术网

Python 用于根据其他数据帧删除其他所有值的函数

Python 用于根据其他数据帧删除其他所有值的函数,python,pandas,dataframe,Python,Pandas,Dataframe,我正在创建两个数据帧,在其中存储基于日期时间的最小和最大时间序列值。两个数据帧,一个用于最大值,一个用于最小值,每个数据帧应该只有3个条目。我遇到的问题是,我不希望一行中有两个最大值/最小值,因此每个最大值索引后面都应该有一个最小值索引 以下是我到目前为止得到的信息: import pandas as pd from pandas import Timestamp df=pd.Series({Timestamp('2020-11-30 00:35:00'): '0.03119', Timesta

我正在创建两个数据帧,在其中存储基于日期时间的最小和最大时间序列值。两个数据帧,一个用于最大值,一个用于最小值,每个数据帧应该只有3个条目。我遇到的问题是,我不希望一行中有两个最大值/最小值,因此每个最大值索引后面都应该有一个最小值索引

以下是我到目前为止得到的信息:

import pandas as pd
from pandas import Timestamp
df=pd.Series({Timestamp('2020-11-30 00:35:00'): '0.03119', Timestamp('2020-11-30 00:40:00'): '0.03116', Timestamp('2020-11-30 00:45:00'): '0.03118', Timestamp('2020-11-30 00:50:00'): '0.03123', Timestamp('2020-11-30 00:55:00'): '0.03124', Timestamp('2020-11-30 01:00:00'): '0.03115', Timestamp('2020-11-30 01:05:00'): '0.03123', Timestamp('2020-11-30 01:10:00'): '0.03147', Timestamp('2020-11-30 01:15:00'): '0.03131', Timestamp('2020-11-30 01:20:00'): '0.03119', Timestamp('2020-11-30 01:25:00'): '0.03117', Timestamp('2020-11-30 01:30:00'): '0.03115', Timestamp('2020-11-30 01:35:00'): '0.03122', Timestamp('2020-11-30 01:40:00'): '0.03126', Timestamp('2020-11-30 01:45:00'): '0.03135', Timestamp('2020-11-30 01:50:00'): '0.03133', Timestamp('2020-11-30 01:55:00'): '0.03125', Timestamp('2020-11-30 02:00:00'): '0.03120', Timestamp('2020-11-30 02:05:00'): '0.03115', Timestamp('2020-11-30 02:10:00'): '0.03115', Timestamp('2020-11-30 02:15:00'): '0.03115', Timestamp('2020-11-30 02:20:00'): '0.03115', Timestamp('2020-11-30 02:25:00'): '0.03112', Timestamp('2020-11-30 02:30:00'): '0.03113', Timestamp('2020-11-30 02:35:00'): '0.03114', Timestamp('2020-11-30 02:40:00'): '0.03121', Timestamp('2020-11-30 02:45:00'): '0.03122', Timestamp('2020-11-30 02:50:00'): '0.03123', Timestamp('2020-11-30 02:55:00'): '0.03123', Timestamp('2020-11-30 03:00:00'): '0.03116', Timestamp('2020-11-30 03:05:00'): '0.03102', Timestamp('2020-11-30 03:10:00'): '0.03105', Timestamp('2020-11-30 03:15:00'): '0.03113', Timestamp('2020-11-30 03:20:00'): '0.03126', Timestamp('2020-11-30 03:25:00'): '0.03137', Timestamp('2020-11-30 03:30:00'): '0.03140', Timestamp('2020-11-30 03:35:00'): '0.03142', Timestamp('2020-11-30 03:40:00'): '0.03136', Timestamp('2020-11-30 03:45:00'): '0.03142', Timestamp('2020-11-30 03:50:00'): '0.03127', Timestamp('2020-11-30 03:55:00'): '0.03134', Timestamp('2020-11-30 04:00:00'): '0.03122', Timestamp('2020-11-30 04:05:00'): '0.03119', Timestamp('2020-11-30 04:10:00'): '0.03113', Timestamp('2020-11-30 04:15:00'): '0.03105', Timestamp('2020-11-30 04:20:00'): '0.03104', Timestamp('2020-11-30 04:25:00'): '0.03111', Timestamp('2020-11-30 04:30:00'): '0.03110', Timestamp('2020-11-30 04:35:00'): '0.03105', Timestamp('2020-11-30 04:40:00'): '0.03112', Timestamp('2020-11-30 04:45:00'): '0.03100', Timestamp('2020-11-30 04:50:00'): '0.03104', Timestamp('2020-11-30 04:55:00'): '0.03108', Timestamp('2020-11-30 05:00:00'): '0.03108', Timestamp('2020-11-30 05:05:00'): '0.03115', Timestamp('2020-11-30 05:10:00'): '0.03115', Timestamp('2020-11-30 05:15:00'): '0.03113', Timestamp('2020-11-30 05:20:00'): '0.03116', Timestamp('2020-11-30 05:25:00'): '0.03132', Timestamp('2020-11-30 05:30:00'): '0.03127', Timestamp('2020-11-30 05:35:00'): '0.03124', Timestamp('2020-11-30 05:40:00'): '0.03118', Timestamp('2020-11-30 05:45:00'): '0.03111', Timestamp('2020-11-30 05:50:00'): '0.03108', Timestamp('2020-11-30 05:55:00'): '0.03108', Timestamp('2020-11-30 06:00:00'): '0.03109', Timestamp('2020-11-30 06:05:00'): '0.03108', Timestamp('2020-11-30 06:10:00'): '0.03114', Timestamp('2020-11-30 06:15:00'): '0.03117', Timestamp('2020-11-30 06:20:00'): '0.03103', Timestamp('2020-11-30 06:25:00'): '0.03097', Timestamp('2020-11-30 06:30:00'): '0.03098', Timestamp('2020-11-30 06:35:00'): '0.03101', Timestamp('2020-11-30 06:40:00'): '0.03103', Timestamp('2020-11-30 06:45:00'): '0.03109', Timestamp('2020-11-30 06:50:00'): '0.03108', Timestamp('2020-11-30 06:55:00'): '0.03110', Timestamp('2020-11-30 07:00:00'): '0.03111', Timestamp('2020-11-30 07:05:00'): '0.03119', Timestamp('2020-11-30 07:10:00'): '0.03130', Timestamp('2020-11-30 07:15:00'): '0.03126', Timestamp('2020-11-30 07:20:00'): '0.03130', Timestamp('2020-11-30 07:25:00'): '0.03133', Timestamp('2020-11-30 07:30:00'): '0.03128', Timestamp('2020-11-30 07:35:00'): '0.03120', Timestamp('2020-11-30 07:40:00'): '0.03115', Timestamp('2020-11-30 07:45:00'): '0.03118', Timestamp('2020-11-30 07:50:00'): '0.03113', Timestamp('2020-11-30 07:55:00'): '0.03109', Timestamp('2020-11-30 08:00:00'): '0.03079', Timestamp('2020-11-30 08:05:00'): '0.03059', Timestamp('2020-11-30 08:10:00'): '0.03061', Timestamp('2020-11-30 08:15:00'): '0.03074', Timestamp('2020-11-30 08:20:00'): '0.03062', Timestamp('2020-11-30 08:25:00'): '0.03052', Timestamp('2020-11-30 08:30:00'): '0.03066', Timestamp('2020-11-30 08:35:00'): '0.03064', Timestamp('2020-11-30 08:40:00'): '0.03064', Timestamp('2020-11-30 08:45:00'): '0.03068', Timestamp('2020-11-30 08:50:00'): '0.03072', Timestamp('2020-11-30 08:55:00'): '0.03065', Timestamp('2020-11-30 09:00:00'): '0.03058', Timestamp('2020-11-30 09:05:00'): '0.03043', Timestamp('2020-11-30 09:10:00'): '0.03050', Timestamp('2020-11-30 09:15:00'): '0.03058', Timestamp('2020-11-30 09:20:00'): '0.03048', Timestamp('2020-11-30 09:25:00'): '0.03045', Timestamp('2020-11-30 09:30:00'): '0.03037', Timestamp('2020-11-30 09:35:00'): '0.03034', Timestamp('2020-11-30 09:40:00'): '0.03045', Timestamp('2020-11-30 09:45:00'): '0.03048', Timestamp('2020-11-30 09:50:00'): '0.03054', Timestamp('2020-11-30 09:55:00'): '0.03056', Timestamp('2020-11-30 10:00:00'): '0.03064', Timestamp('2020-11-30 10:05:00'): '0.03062', Timestamp('2020-11-30 10:10:00'): '0.03067', Timestamp('2020-11-30 10:15:00'): '0.03075', Timestamp('2020-11-30 10:20:00'): '0.03073', Timestamp('2020-11-30 10:25:00'): '0.03064', Timestamp('2020-11-30 10:30:00'): '0.03063'})
df=df.astype(float)
hi = df.dropna().copy() 
lo = df.dropna().copy()  
for i in range(2):
    hi = hi.iloc[argrelmax(hi.values)[0]]
    lo = lo.iloc[argrelmin(lo.values)[0]] 
    hi = hi[~hi.index.isin(lo.index)]
    lo = lo[~lo.index.isin(hi.index)] 

hig=pd.concat([hi.astype(float)tail(3)])
highs = pd.DataFrame({'Date':hig.index, 'Highs':hig.values})
highs=highs.set_index('Date')
       
los=pd.concat([lo.astype(float).tail(3)]) 
lows=pd.DataFrame({'Date':los.index, 'Lows':los.values})
lows=lows.set_index('Date')
print(lows)
print(highs)
哪些产出:

                        Lows
Date                        
2020-11-30 04:45:00  0.03100
2020-11-30 06:25:00  0.03097
2020-11-30 09:35:00  0.03034
                       Highs
Date                        
2020-11-30 06:15:00  0.03117
2020-11-30 07:25:00  0.03133
2020-11-30 08:50:00  0.03072
在这里,我删除了两个系列中使用
.index.isin()
显示的索引。但是,有两个高点依次出现,中间没有低点。我如何删除每个没有跟在另一系列索引后面/前面的索引

预期产出:

                        Lows
Date                        
2020-11-30 04:45:00  0.03100
2020-11-30 06:25:00  0.03097
2020-11-30 09:35:00  0.03034
                       Highs
Date
2020-11-30 01:10:00  0.03147                        
2020-11-30 06:15:00  0.03117
2020-11-30 07:25:00  0.03133

增加了输出的图片:

添加了显示问题的绘图图片:

我添加了一个样本系列,这就是投票失败的原因吗?我只是在寻找一个熊猫函数或技巧,可以实现“每隔一个索引问题”,谢谢提示!很抱歉,我弄糟了录音,它应该重新出现问题,如图所示。2.是的,Argelmax/min返回许多高点和低点,但我只需要最新的三个。3.我同意他们应该这样做,但他们并不总是这样。我试图在我的数据中找到轴心点,我知道在删除一个高/低时会变得很棘手,因为这样就必须确定哪一个是“真正的”轴心点,但是我想我会发现,一旦我学会了过滤序列的方法,每个索引后面都有一个其他序列中的索引,那么您的预期输出仍然与您声称的逻辑不匹配。3个最新的本地最大值(高点)位于
09:15
10:00
10:15
。这可以通过
df.plot()
直接看到。(
df=pd.to_numeric(df)
预处理也是必需的,因为您将值粘贴为
str
而不是
float
)。这很奇怪,我在复制粘贴上述代码时添加了一张输出图片,可能您的意思是
ax=plt.subplot()ax.plot(df)ax.plt(高)ax.plt(低)plt.show()