基于每个唯一值的条件的新熊猫布尔列

新秀89

我有一个包含以下列的数据框:ID、event_name、event_date

目标:对于每个唯一的 ID,如果他们有一个,event_name == 'attended book event'那么我想创建一个新列attended_book_event并拥有value = 1. 如果它们没有,event_name==' attended book event'则新列中的值为0

样本:

ID| event_name | event_date

1| joined_club| 12-12-03

1| attended_book_event| 12-27-03

1| elite_member| 03-01-05

2| joined_club| 12-12-03

2| elite_member| 03-01-05

我尝试对 id 进行分组,然后使用条件创建一个新列,但结果不是我想要的。

 df_dose['had_dose_increase'] = [1 if df_dose['event_name'] == 
  'dose_increased' else 0] 

我想要一个新专栏

ID| event_name | event_date| attended_book_event

1| joined_club| 12-12-03| 1

1| attended_book_event| 12-27-03|1

1| elite_member| 03-01-05|1

2| joined_club| 12-12-03|0

2| elite_member| 03-01-05|0
克里斯

使用pd.Series.groupby具有transform

df['attended_book_event'] = df.groupby('ID')['event_name'].transform(lambda x: 'attended_book_event' in set(x)).astype(int)

输出:

   ID           event_name event_date  attended_book_event
0   1          joined_club   12-12-03                    1
1   1  attended_book_event   12-27-03                    1
2   1         elite_member   03-01-05                    1
3   2          joined_club   12-12-03                    0
4   2         elite_member   03-01-05                    0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas:基于条件具有唯一值的新列

如何基于熊猫列的唯一值应用z变换?

如何为熊猫布尔掩码中的连续True值的每个序列分配唯一的分组值

如何基于多个先前值的熊猫条件计算新列

熊猫获取B列中每个唯一值的A列中唯一值的列表

熊猫基于另一列替换值条件

熊猫,对于一列中的每个唯一值,在另一列中获得唯一值

基于条件的新列值

Python熊猫子集第x列的值基于y列中的唯一值

查找熊猫中每个列的每个唯一值的百分比

基于系列条件创建新的熊猫列

熊猫,基于列值的条件列分配

如何计算基于另一列的两列的唯一值?(每个ID)

熊猫:以唯一值串联为条件

使用基于条件的值创建一个新列

分组并汇总与特定日期另一列的每个唯一值相对应的列的布尔值数量

如何基于数据框熊猫的唯一首字母构建新列

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

基于熊猫中列值的条件乘法

熊猫使用基于条件的值填充列

基于熊猫条件的列值总和

布尔索引,如果行等于另一列中所有唯一值的值 - 熊猫

熊猫基于行值的新列

熊猫根据现有列的第一个唯一值创建新列

基于唯一ID和范围截止值的分层熊猫列

Python:使用基于嵌套列表中唯一值的列创建熊猫数据框

基于两个唯一的列值熊猫创建聚类的功能

一列的最大值基于另一列的每个唯一值(数据框)

熊猫:从另一列中的每个唯一值中获取一列的最大值