You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame子集筛选与多列累计运算生成标识列实现

Pandas实现代码

完整可运行的实现逻辑如下:

import pandas as pd

# 构造示例数据集
df = pd.DataFrame({
    'unit': ['ABC', 'DEF', 'GEH','IJK','DEF','XRF','BRQ'], 
    'A': [1,1,1,0,0,0,1], 
    'B': [1,1,1,1,1,1,0],
    'C': [1,1,1,0,0,0,1],
    'row_num': [7,6,5,4,3,2,1]
})

# 1. 筛选row_num <=4的子集,加copy避免链式索引警告
df_sub = df[df['row_num'] <= 4].copy()

# 2. 统计A、B、C三列1的占比
calc_cols = ['A', 'B', 'C']
total_1 = df_sub[calc_cols].sum().sum() # 两次sum分别完成列维度求和、全局总1数统计
total_count = df_sub[calc_cols].size # 总元素个数,样例中为4行*3列=12
ratio = total_1 / total_count

# 3. 按规则赋值flag列
if ratio >= 0.4:
    df_sub['flag'] = 1
elif ratio < 0.1:
    df_sub['flag'] = 0
# 注:占比在10%~40%区间的规则未明确,可自行补充对应分支逻辑

# 结果验证
print(f"1的占比:{ratio:.2%}")
print(df_sub)

运行后输出的1占比为41.67%,符合>=40%的条件,最终子集所有行的flag列都会赋值为1。

内容的提问来源于stack exchange,提问作者HKE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:15:04