【问题标题】:Count ID's by using field values in python [duplicate]通过使用python中的字段值来计算ID [重复]
【发布时间】:2020-03-20 20:34:57
【问题描述】:

我有一张这样的桌子

Id  Brand1  Brand2  Brand3  Brand4
0     1       0       0       1
1     1       0       1       0
2     1       0       1       0
3     1       1       0       0
4     1       1       0       1

我正在尝试为使用品牌组合的 ID 数量创建一个表。

         Brand1  Brand2  Brand3  Brand4
  Brand1      -       2       2       2
  Brand2      2       -       0       1
  Brand3      2       0       -       0
  Brand4      2       1       0       -

因为它们具有相同的值,所以这也可以。

         Brand1  Brand2  Brand3  Brand4
  Brand1      -       2       2       2
  Brand2      -       -       0       1
  Brand3      -       -       -       0
  Brand4      -       -       -       -

【问题讨论】:

  • 嗨,你到底尝试了什么?你有什么代码可以提供吗?请查看How to ask a good question
  • 逻辑完全不清楚。我的意思是你在数什么或加起来?
  • 下表是两个品牌的 ID 为“1”的数量。比如 Brand1 和 Brand2 有两个 ID 的值为 1 (ID=[3, 4])

标签: python python-3.x pandas numpy


【解决方案1】:

你可以用一个简单的矩阵乘积来做到这一点:

import pandas as pd

df = pd.DataFrame({
    'Brand1': [1, 1, 1, 1, 1],
    'Brand2': [0, 0, 0, 1, 1],
    'Brand3': [0, 1, 1, 0, 0],
    'Brand4': [1, 0, 0, 0, 1],
})
cross = df.T @ df
print(cross)
#         Brand1  Brand2  Brand3  Brand4
# Brand1       5       2       2       2
# Brand2       2       2       0       1
# Brand3       2       0       2       0
# Brand4       2       1       0       2

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多