如何在 Pandas 数据框中创建带有百分比等的列

BKS

我有两种类型的数据框:

数据框AID

AID FID ANumOfF
1   X   1
1   Y   5
2   Z   6
2   A   1
2   X   11
2   B   18

数据框VID

VID FID VNumOfF
1A  X   10
1A  A   500
2A  A   62
2A  B   10
2A  C   30
2A  X   23

1- 我想在每个 Dataframe 中创建一个新列,用于计算每个 FID 为每个 VID 持有的百分比。因此,例如上面的结果将如下所示:

新数据框AID

AID FID ANumOfF  PercentF
1   X   1        0.167  (1/6)
1   Y   5        0.833  (5/6)
2   Z   6        0.167  (6/36)
2   A   1        0.028
2   X   11       0.305
2   B   18       0.5

新数据框VID

VID FID VNumOfF  PercentF
1A  X   10       0.02
1A  A   500      0.98
2A  A   62       0.50
2A  B   10       0.08
2A  C   30       0.24
2A  X   23       0.18

到目前为止,我知道以下代码为我提供了每个 AID/VID 的总和:

AID.groupby('AID')['ANumFS'].sum()
VID.groupby('VID')['VNumFS'].sum()

2- 之后,我想创建一个新的数据框,查看存在的每对 VID 和 AID 的“重叠”。它将总结他们将共享的百分比的乘积。因此,对于上面生成的新数据帧,我们将得到以下内容:

由于AID=1并且VID=1A只有FID=X共同点,重叠计算将是:0.167*0.02 = 0.00334

AID=2并且VID=2AFIDs A, B and X共同点,所以重叠计算将是:0.028*0.5 + 0.305*0.18 + 0.5*0.08 = 0.1089

AID   VID   Overlap
1     1A    0.00334
1     2A    0.03006
2     1A    0.03354
2     2A    0.1089

我怎样才能做到这一点?

耶斯列

我认为您可以使用divtransform来创建新列:

AID['PercentF'] = AID['ANumOfF'].div(AID.groupby('AID')['ANumOfF'].transform('sum'))
print (AID)
   AID FID  ANumOfF  PercentF
0    1   X        1  0.166667
1    1   Y        5  0.833333
2    2   Z        6  0.166667
3    2   A        1  0.027778
4    2   X       11  0.305556
5    2   B       18  0.500000

VID['PercentF'] = VID['ANumOfF'].div(VID.groupby('VID')['ANumOfF'].transform('sum'))
print (VID)
  VID FID  ANumOfF  PercentF
0  1A   X       10  0.019608
1  1A   A      500  0.980392
2  2A   A       62  0.496000
3  2A   B       10  0.080000
4  2A   C       30  0.240000
5  2A   X       23  0.184000

然后innerjoin by merge,多列,最后groupby聚合sum

df = pd.merge(AID, VID, on='FID')
df['Overlap'] = df.PercentF_x.mul(df.PercentF_y)
df = df.groupby(['AID','VID'], as_index=False)['Overlap'].sum()
print (df)
   AID VID   Overlap
0    1  1A  0.003268
1    1  2A  0.030667
2    2  1A  0.033224
3    2  2A  0.110000

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在熊猫数据框中插入百分比列?

来自分类Dev

如何在图中显示数据框中每列的最高百分比

来自分类Dev

如何使用Pandas Groupby计算每列中总计的百分比

来自分类Dev

如何在数据框中创建一个新列,并根据前一列中结果的百分比将其设置为1或0?

来自分类Dev

如何按百分比将新列添加到数据框中?

来自分类Dev

如何使用groupby计算熊猫数据框中特定列的总数百分比?

来自分类Dev

如何根据熊猫数据框中的多列获取百分比计数?

来自分类Dev

如何在熊猫数据框中绘制NaN百分比?

来自分类Dev

如何在Matlab中绘制带有百分比的直方图?

来自分类Dev

如何在SQL中设置百分比列?

来自分类Dev

如何在ssrs中添加百分比列

来自分类Dev

Python Pandas:根据百分比将数据总值散布在数据框中

来自分类Dev

在 R 数据框中,对于给定的行,如何找到 A 列中的值与 B 列中的值的百分比?

来自分类Dev

如何根据缺失值的百分比计算数据框中列的分位数的不同范围?

来自分类Dev

Pandas数据框:以百分比为从相同字符串开始的行添加列

来自分类Dev

如何在每个类别中获取具有特定百分比的数据

来自分类Dev

Python Pandas:根据返回类别的百分比在数据框中传播总值

来自分类Dev

如何使用 Python 中的 pct_change 计算数据框中 2 列的百分比变化

来自分类Dev

如何在pandas数据框中创建列层次索引

来自分类Dev

如何计算Apache Beam中的百分比变化?即pandas.DataFrame.pct_change

来自分类Dev

如何将数据框的第4,5,6列中的值更改为百分比格式?

来自分类Dev

如何从R中特定行的开头更改百分比来制作新的列和数据框?

来自分类Dev

如何从熊猫数据框中绘制具有百分比分布的水平条形图?

来自分类Dev

如何找到数据框行的累积百分比?

来自分类Dev

在Pandas数据透视表中获取另一列的百分比

来自分类Dev

如何根据 HTML 和 CSS 中的百分比创建大小的嵌套框?

来自分类Dev

如何添加带有百分比的图表数据标签?

来自分类Dev

如何爆炸数据框并将列值减少一定百分比

来自分类Dev

如何计算 Spark SQL 数据框中的百分比?

Related 相关文章

  1. 1

    如何在熊猫数据框中插入百分比列?

  2. 2

    如何在图中显示数据框中每列的最高百分比

  3. 3

    如何使用Pandas Groupby计算每列中总计的百分比

  4. 4

    如何在数据框中创建一个新列,并根据前一列中结果的百分比将其设置为1或0?

  5. 5

    如何按百分比将新列添加到数据框中?

  6. 6

    如何使用groupby计算熊猫数据框中特定列的总数百分比?

  7. 7

    如何根据熊猫数据框中的多列获取百分比计数?

  8. 8

    如何在熊猫数据框中绘制NaN百分比?

  9. 9

    如何在Matlab中绘制带有百分比的直方图?

  10. 10

    如何在SQL中设置百分比列?

  11. 11

    如何在ssrs中添加百分比列

  12. 12

    Python Pandas:根据百分比将数据总值散布在数据框中

  13. 13

    在 R 数据框中,对于给定的行,如何找到 A 列中的值与 B 列中的值的百分比?

  14. 14

    如何根据缺失值的百分比计算数据框中列的分位数的不同范围?

  15. 15

    Pandas数据框:以百分比为从相同字符串开始的行添加列

  16. 16

    如何在每个类别中获取具有特定百分比的数据

  17. 17

    Python Pandas:根据返回类别的百分比在数据框中传播总值

  18. 18

    如何使用 Python 中的 pct_change 计算数据框中 2 列的百分比变化

  19. 19

    如何在pandas数据框中创建列层次索引

  20. 20

    如何计算Apache Beam中的百分比变化?即pandas.DataFrame.pct_change

  21. 21

    如何将数据框的第4,5,6列中的值更改为百分比格式?

  22. 22

    如何从R中特定行的开头更改百分比来制作新的列和数据框?

  23. 23

    如何从熊猫数据框中绘制具有百分比分布的水平条形图?

  24. 24

    如何找到数据框行的累积百分比?

  25. 25

    在Pandas数据透视表中获取另一列的百分比

  26. 26

    如何根据 HTML 和 CSS 中的百分比创建大小的嵌套框?

  27. 27

    如何添加带有百分比的图表数据标签?

  28. 28

    如何爆炸数据框并将列值减少一定百分比

  29. 29

    如何计算 Spark SQL 数据框中的百分比?

热门标签

归档