python 检查向后升级版本

tsm1rwdh  于 2023-05-16  发布在  Python
关注(0)|答案(1)|浏览(139)

我有一个这样的dataframe:

api_spec_id   info_version
124             2.0.0
124             2.0.0
124             1.0.0
124             1.5.6
124             0.4.5
345             v2alpha1
345             v1alpha1

我想比较一下info_version,看看版本倒退了多少次,比如从2.0.0到1.0.0,或者从v2到v1。我不知道这将如何成为可能,或者我是否将不得不使用packaging Version class,以便比较。
在我的预期输出中,我希望看到观察到这种现象的api_spec_id的数量。
任何关于如何实现这一目标的建议或想法将不胜感激。

yhuiod9q

yhuiod9q1#

我会使用packaging库来自动处理版本号比较,然后使用自定义的groupby.apply

from packaging.version import Version

out = (df['info_version'].apply(Version)
 .groupby(df['api_spec_id'])
 .apply(lambda s: s.iloc[1:].lt(s.shift().iloc[1:]).sum())
)

输出:

api_spec_id
124    2
345    1
Name: info_version, dtype: int64

相关问题