python - Pandas :计算两列的不同组合并添加到同一数据框

标签 python pandas count size aggregation

需要帮助将两列的唯一组合添加到 Pandas 中的同一数据框中。 我想要那个“nos”列。

Input:
id  acct_nos name
1   1a       one
1   1a       two
2   2b       three
3   3a       four
3   3b       five
3   3c       six
3   3d       seven

这是我想要的输出:

Output:
id  acct_nos    nos name
1   1a          1   one 
1   1a          1   two
2   2b          1   three
3   3a          4   four
3   3b          4   five
3   3c          4   six
3   3d          4   seven

在上面的例子中 id=1 只有 1 个 acct_nos-1a,所以 nos 的值必须为 1。 id=3 只有 4 个 acct_nos-3a 到 3d,所以 nos 的值必须是 4。

不确定如何将它放入 Python Pandas 中。我能弄清楚的 SQL 查询。

谢谢

最佳答案

您可以使用 groupby.transformnunique() 函数来计算每个 id 的唯一元素的数量:

df['nos'] = df.groupby("id")['acct_nos'].transform("nunique")
df

enter image description here

关于python - Pandas :计算两列的不同组合并添加到同一数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442450/

相关文章:

python - 如何以编程方式获取 Django 中模型的管理器实例

python - 在具有 16GB RAM 的笔记本电脑上使用 Pandas 进行绘图

mysql按日期范围显示行和组中的每种类型

mysql - SELECT COUNT 跨一对多关系

sql-server - 基于范围的列数

python - 简单的动态网页抓取 - 没有 BeautifulSoup

python - 有没有办法在 Python 中创建类属性?

python - reStructuredText:README.rst 不适用于 PyPI

python - 计算 DataFrame 列中所有定义的值,其中另一列中的相应值在 pandas 中未定义

python - 如何加快对 pandas 数据框的行列访问?