【问题标题】:Count values greater than in another dataframe based on values in existing dataframe根据现有数据框中的值计算大于另一个数据框中的值
【发布时间】:2021-01-25 11:05:12
【问题描述】:

我有两个 python pandas 数据框,它们的简化形式如下所示:

DF1

+-----+-----+-----+-----+-----+-----+
| a_1 | a_2 | a_3 | a_4 | a_5 | a_6 |
+-----+-----+-----+-----+-----+-----+
|   0 |   2 |   5 |   0 |   2 |   5 |
|   1 |   3 |   4 |   1 |   3 |   4 |
|   1 |   0 |   3 |   0 |   0 |   1 |
+-----+-----+-----+-----+-----+-----+

DF2

+-----+
|   A | 
+-----+
| a_1 | 
| a_2 | 
| a_3 |
| a_4 | 
| a_5 | 
| a_6 | 
+-----+

我想在 DF2 中创建一个值的计数列(每行),如果 A 列 (DF2) 中的每个值都等于 DF1 中的列名,则所选列中的计数大于零

期望输出:

+-----+-------+
|   A | Count | 
+-----+-------+
| a_1 |   2   |  
| a_2 |   2   | 
| a_3 |   3   | 
| a_4 |   1   | 
| a_5 |   2   | 
| a_6 |   3   | 
+-----+-------+

感谢任何评论和反馈,在此先感谢

【问题讨论】:

    标签: python pandas dataframe count


    【解决方案1】:

    使用Series.mapDF1 中的比较值DataFrame.gt 和计数Trues 通过sum

    DF2['Count'] = DF2['A'].map(DF1.gt(0).sum())
    print (DF2)
         A  Count
    0  a_1      2
    1  a_2      2
    2  a_3      3
    3  a_4      1
    4  a_5      2
    5  a_6      3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多