如何创建具有基于groupby值的熊猫数据帧向量

给出以下数据:

x1 = 'one'
x2 = 'two'
x3 = 'three'
y1 = 'yes'
y2 = 'no'
n = 3


df = pd.DataFrame(dict(
    a = [x1]*n + [x2]*n + [x3]*n,
    b = [
        y1,
        y1,
        y2,
        y2,
        y2,
        y2,
        y2,
        y2,
        y1,
    ]
))

看起来像:

Out[5]:
       a    b
0    one  yes
1    one  yes
2    one   no
3    two   no
4    two   no
5    two   no
6  three   no
7  three   no
8  three  yes

我想知道是否可以c如下创建列

Out[5]:
       a    b   c
0    one  yes   1
1    one  yes   1
2    one   no   1
3    two   no   0
4    two   no   0
5    two   no   0
6  three   no   1
7  three   no   1
8  three  yes   1

其中c定义为1如果a该列b中的包含yes

我尝试了以下方法:

group_results = df.groupby('a').apply(lambda x:  'yes' in x.b.to_list() )
group_results = group_results.reset_index()
group_results = group_results.rename(columns = {0 : 'c'})
df = pd.merge(df, group_results, left_on = 'a', 
                  right_on = 'a', 
                  how = 'left').copy()

但是我觉得似乎有更好的方法。

耶斯列尔

使用Series.isin的测试组与至少一个yesa列,最后转换面具与整数Series.view

df['c'] = df['a'].isin(df.loc[df['b'].eq('yes'), 'a']).view('i1')
print(df)
       a    b  c
0    one  yes  1
1    one  yes  1
2    one   no  1
3    two   no  0
4    two   no  0
5    two   no  0
6  three   no  1
7  three   no  1
8  three  yes  1

详细说明

print(df.loc[df['b'].eq('yes'), 'a'])
0      one
1      one
8    three
Name: a, dtype: obje

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于2个数据帧中的共享列创建具有列值的新列?

熊猫在两个具有相同列的数据帧中减去值创建新的数据帧来存储结果

如何定购的值基于含有所需顺序的预定义的阵列上的熊猫数据帧?

如何在熊猫数据帧上生成具有随机值的合成数据?

根据具有重复值的向量选择数据帧的行

从具有lista的嵌套json文件创建熊猫数据帧

如何基于2列数据帧创建具有1和0的矩阵

如何基于R中的长格式数据帧创建具有不同列长的Markdown表?

如何基于在熊猫数据框中具有NaN的现有列创建新列?

返回具有特定值“ 1”的熊猫数据帧

如何比较具有重复项和向量的数据帧?

创建具有所需值的对称熊猫GroupBy

基于具有相同对值的两列合并熊猫数据帧,但在两个数据帧中以不同顺序显示

熊猫高级:如何在groupby之后创建具有最大3个值和最小3个值的多索引数据框?

如何基于具有完全匹配的日期值过滤熊猫数据框

Groupby 熊猫数据框具有相同值的两列

在熊猫中,如何基于groupby准则获取多个子集数据帧?

如何基于数据帧的长度作为索引值在数据帧中创建额外的列

创建基于每个ID最近值在熊猫数据帧新列

如何基于先验信息在具有时间维度的R数据帧中包括缺失的观测值?

如何合并2个熊猫数据帧,并从2个匹配的行中更新具有最新值的列?

创建具有重复值的熊猫数据框

如何基于现有数据帧中的dtypes创建新数据帧?

如何从多个向量创建数据帧?

基于来自具有不同值的两列的字符串匹配合并来自多个熊猫系列数据帧的两列

如何基于参考向量完成长格式数据帧的缺失值

如何基于向量作为源来完成数据帧的列和行中的缺失值

创建 R 中数据帧中所有列的所有值的向量

如何获取具有最频繁值的数据帧?