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

Pandas DataFrame处理:用DictVectorize统计指定值及提取关联列

解决方案

可以通过拆分字符串+分组聚合的方式实现需求,同时保留var2的关联信息,具体步骤如下:

1. 构建原数据(示例)

import pandas as pd

df = pd.DataFrame({
    'target': [1, 0, 1],
    'var1': ['jack, jones, phil', 'don, sam, bob', 'jones, alex, sam'],
    'var2': ['en-us', 'vn-en', 'en-us']
})

2. 拆分逗号分隔的var1列

把var1中用逗号分隔的名字拆成单独行,同时保留每行对应的target和var2:

# 拆分字符串为列表,再展开成多行
df_exploded = df.assign(var1=df['var1'].str.split(', ')).explode('var1')

拆分后的数据会变成每个名字单独一行,比如jones会出现两次,分别对应原数据中target=1和var2=en-us的行。

3. 分组统计次数并关联var2

按var1(名字)和var2分组,统计每个名字在target=1和target=0时的出现次数:

result = df_exploded.groupby(['var1', 'var2']).agg(
    target=('target', 'sum'),  # 统计target=1的次数
    no_target=('target', lambda x: (x == 0).sum())  # 统计target=0的次数
).reset_index()

最终结果

筛选var1='jones'即可得到你需要的结果:

var1var2targetno_target
jonesen-us20

这种方式直接把var2纳入分组键,确保每个名字对应的var2信息被保留,解决了你之前用DictVectorize无法关联var2的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:09:28