【问题标题】:Calculate perc in Pandas Dataframe based on rows having a specific condition for each distinct value in column根据对列中每个不同值具有特定条件的行计算 Pandas Dataframe 中的 perc
【发布时间】:2020-06-02 05:53:18
【问题描述】:

我有一个数据框,其示例值如下所示

`

col1   col2 
A     ['1','2','er'] 
A     [] 
B     ['3','4','ac'] 
B     ['5'] 
C     []

`

我想计算 col1 中每个值的总行数与 col2 中非空列表的总行数的百分比。

如果 col1 中有一个值,我可以做到这一点。我正在寻找一种解决方案来迭代地执行此操作。感谢您的帮助。

【问题讨论】:

    标签: python python-3.x pandas dataframe pandas-groupby


    【解决方案1】:

    我相信您需要比较更大的列表长度,例如0,转换为数字然后聚合mean

    df1 = df['col2'].str.len().gt(0).view('i1').groupby(df['col1']).mean().reset_index(name='%')
    print (df1)
      col1    %
    0    A  0.5
    1    B  1.0
    2    C  0.0
    

    【讨论】:

    • 成功了。谢谢。对于 col2 的每个值,我还希望 Col2 列表中每个元素的百分比。即 A 为 1 的百分比,B 为 ac 的百分比。
    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2021-07-17
    • 2022-11-20
    相关资源
    最近更新 更多