为了账号安全,请及时绑定邮箱和手机立即绑定

创建一个表格,显示列表是否包含在数据框的分组列中

创建一个表格,显示列表是否包含在数据框的分组列中

一只名叫tom的猫 2022-11-01 14:06:58
给出以下数据:data = pd.DataFrame(    dict(        source=["file1", "file1", "file2", "file2"],        variable=["shipp", "carrr", "shipp", "bikee"],    ))vals = pd.Series(["ship", "bike"])看起来像:  source variable0  file1    shipp1  file1    carrr2  file2    shipp3  file2    bikee我想创建以下内容:          ship     bikefile1     True     Falsefile2     True     True不过,我不确定该怎么做,我尝试了以下方法:data.groupby("source").apply(    lambda grp: pd.Series([any(grp["variable"].str.contains(v)) for v in vals]))这花了我几次,我现在想知道是否有更好的方法。(欢迎任何帮助编写更好的标题)
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我们这样extract做pd.crosstab


data['new']=data.variable.str.extract('('+'|'.join(vals)+')')[0]

s=pd.crosstab(data.source,data.new).astype(bool)

new      bike  ship

source             

file1   False  True

file2    True  True


查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信