在我从python 3.5升级到python 3.6之前,这个工作:
import typing
issubclass(list, typing.List[int]) # returns True
isinstance([1, 2 ,3], typing.List[int]) # returns True
Run Code Online (Sandbox Code Playgroud)
现在在python 3.6中,这两个都引发了以下异常:
TypeError: Parameterized generics cannot be used with class or instance checks
Run Code Online (Sandbox Code Playgroud)
这是新的预期行为还是错误?如果打算如何执行检查,上面的代码在python 3.6中进行?
我正在尝试使用 Pandas 根据表示时间(以秒为单位)的列中的差异来消除数据框中的一些近似重复项。例如:
import pandas as pd, numpy as np
df=pd.DataFrame([1200,1201,1233,1555,1650,5561,5562],columns=['Time'])
df['Dif']=df.Time.diff()
df['Coef']=np.random.rand(len(df))
Run Code Online (Sandbox Code Playgroud)

所以我需要做的是检查每个组的时间值都在 2 秒内发生,选择 Coef 中具有最高值的组并丢弃其余的。所以在这个例子中,我会以某种方式将索引 0 和 1 组合在一起并丢弃索引 0(因为 df.Coef[0] < df.Coef 1)。
同样,索引 5、6 和 7 将被组合在一起,除索引 6 外的所有内容都将被丢弃。所以所需的输出将是 df.drop([0,5,7]):

我目前有一个 python while 循环算法来做到这一点,但数据帧可以包含数百万个索引,所以它太慢了。任何纯熊猫解决方案将不胜感激