Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 min(iterable,*[,key,default])返回什么_Python_Arrays_Pandas_For Loop_Min - Fatal编程技术网

Python min(iterable,*[,key,default])返回什么

Python min(iterable,*[,key,default])返回什么,python,arrays,pandas,for-loop,min,Python,Arrays,Pandas,For Loop,Min,对于下面的df,我想从当前时间戳之前和之后的10个值范围中,找到特定时间戳的最近日期时间,即当前时间戳之前一分钟 但是我观察到在不同的情况下,一分钟前的数据返回的值不同,有时它返回时间戳,有时它返回整行作为。min(iterable,*[,key,default])返回什么?在这种情况下,min()函数返回什么?我可能忽略了一些东西,但我不确定是什么。谢谢你的建议 df: Timestamp A B C 9122

对于下面的
df
,我想从当前
时间戳之前和之后的10个值范围中,找到特定时间戳的最近日期时间,即当前时间戳之前一分钟

但是我观察到在不同的情况下,
一分钟前的数据
返回的值不同,有时它返回
时间戳
,有时它返回整行作为
min(iterable,*[,key,default])
返回什么?在这种情况下,
min()
函数返回什么?我可能忽略了一些东西,但我不确定是什么。谢谢你的建议

df

        Timestamp               A           B           C
912262  2001-02-10 00:01:45.910 45.5        NaN         zero
530129  2001-02-10 00:05:33.430 43.5        NaN         zero
243281  2001-02-10 00:07:05.600 45.0        NaN         zero
520580  2001-02-10 00:07:13.600 46.0        NaN         zero
228900  2001-02-10 00:07:23.600 47.0        NaN         zero
我使用的代码如下所示:

for i in range(1, len(df.index)):

    left_timestamp = df.loc[i - 10:i - 1]
    right_timestamp = df.loc[i + 1:i + 10]

    time_one_min_ago = df.loc[i, 'Timestamp'] - datetime.timedelta(minutes=1)

    one_min_ago_data = min(left_timestamp.append(right_timestamp).to_numpy(), key=lambda x: abs(x[timestamp_index] - time_one_min_ago))

我认为熊猫的滚动窗口是完美的,但它有太多的限制,所以我们回到一些好的老循环:

timestamp=df['timestamp']
l=len(时间戳)
win_大小=10
result=np.empty(l,dtype='datetime64[ns]')
对于枚举中的i,ts(时间戳):
#从上面取10行,从下面取10行,但不要取当前行
lbound=最大值(i-win_大小,0)
ubound=最小值(i+win_尺寸,l-1)+1
tmp=timestamp.take([idx表示范围内的idx(lbound,ubound),如果idx!=i])
#查找距离当前时间戳最小的时间戳
argmin=np.abs(tmp-ts).argmin()
结果[i]=tmp[argmin]
df['result']=结果

您好,谢谢您提供的解决方案,您知道如何获取与
tmp
对应的
A
值吗?我想算出他们的意思。