根据pandas DataFrame中的条件替换列中的值

特里格

在pandas DataFrame中有以下数据

import pandas as pd

df = pd.read_csv('example_data_file.csv')
df.head()

ID  Year    status
223725  1991    No
223725  1992    No
223725  1993    No
223725  1994    No
223725  1995    No

我想替换列status中的值Yes该值具有值No基于以下条件的ID:如果ID中至少有一个值YesstatusNo该列所status特有的所有观测值(包括)都将ID替换为Yes否则,它保持不变。

例如在下面的数据帧,844272365Yesstatus最后一排,然后在所有以前的意见,status在这些行具体到844272365应该被替换Yes

ID          Year    status
844272365   1991    No
844272365   1992    No
844272365   1993    No
844272365   1994    No
844272365   1995    No
844272365   1996    No
844272365   1997    No
844272365   1998    No
844272365   1999    No
844272365   2000    No
844272365   2001    No
844272365   2002    No
844272365   2003    No
844272365   2004    No
844272365   2005    No
844272365   2006    No
844272365   2007    No
844272365   2008    No
844272365   2010    No
844272365   2011    No
844272365   2012    No
844272365   2013    Yes

如何根据上述条件对DataFrame中的许多ID进行这些替换?

YOLO

您可以使用transform

df['new_status'] = (df
                    .groupby('ID')['status']
                    .transform(lambda x: 'Yes' if x.str.contains('Yes').any() else 'No'))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas DataFrame:根据条件替换列中的所有值

根据条件替换Pandas Dataframe中的值

Pandas 根据条件替换列中的值

如何根据条件替换pandas DataFrame中的值?

根据pandas DataFrame中的列值有条件地替换多个列

如何根据特定条件替换Pandas Dataframe中特定列的特定值?

如何根据value_counts()条件替换pandas dataframe列中的值?

Pandas 数据框根据条件替换列中的值

根据条件替换列中的值

根据其他列中的条件替换pandas列中的某些特定值

根据条件用不同的替换字典替换pandas数据框列中的值

根据值在Pandas中删除DataFrame列

Pandas-根据Boollean DataFrame替换DataFrame中的值

替换pandas DataFrame中的列值

如何根据特定条件用列表值替换Pandas Dataframe中的元素?

根据 aggregion 和条件替换 pandas 中的值

根据Azure ML Studio中的条件替换列中的值

Pandas DataFrame:根据条件修改完整DataFrame中的单个值

Python:根据 Python 中的多个条件更改 Pandas DataFrame 列中的值

根据 Pandas 中的条件删除列中的值

根据条件替换数据框列中的值

如何根据熊猫中的条件替换列之间的值?

根据多个条件替换列中的所有值

根据其他列中的条件替换值

如何根据特定条件替换列中的某些值?

根据列值中的条件替换行字符串

根据条件替换指定列列表中的值

使用熊猫根据特定列中的条件替换日期值

根据条件替换“熊猫DF”列中的值