我有一个像这样的数据文件:
api_spec_id commitdates commits Year-Month API Age info_version
84 2014-12-15 110 2014-12 110 6.0.1
84 2014-11-06 33 2014-11 33 6.0.2
84 2014-10-15 110 2014-10 110 6.0.3
84 2014-12-02 110 2014-12 110 6.0.5
84 2014-11-19 33 2014-11 33 7.0.2api_spec_id是dataframe中每个API的id,现在相同的API可以在同一个id中有不同的版本,因为它对每个提交日期都在更改。
我想计算一下,对于api_spec_id = 84,总共有多少个版本,就像这里总共有5个版本。
我想要的输出是:
api_spec_id commitdates commits Year-Month API Age info_version Total_versions
84 2014-12-15 110 2014-12 110 6.0.1 5
84 2014-11-06 33 2014-11 33 6.0.2 5
84 2014-10-15 110 2014-10 110 6.0.3. 5
84 2014-12-02 110 2014-12 110 6.0.5. 5
84 2014-11-19 33 2014-11 33 7.0.2. 5我尝试使用value_counts.()、sum()和其他几个解决方案来解决堆栈中类似的问题,但是没有一个解决方案给出了我想要达到的正确数字。做这件事最好的方法是什么?任何指导都会很有帮助。
发布于 2022-11-23 15:28:47
为此,可以使用pd.groupby和nunique:
df['Total_versions'] = df.groupby('api_spec_id').info_version.transform('nunique')它计算列'info_version'中每个'api_spec_id'的唯一值数。
输出:
api_spec_id commitdates commits Year-Month API_Age info_version Total_versions
0 84 2014-12-15 110 2014-12 110 6.0.1 5
1 84 2014-11-06 33 2014-11 33 6.0.2 5
2 84 2014-10-15 110 2014-10 110 6.0.3 5
3 84 2014-12-02 110 2014-12 110 6.0.5 5
4 84 2014-11-19 33 2014-11 33 7.0.2 5https://stackoverflow.com/questions/74549239
复制相似问题