我想在 Dataframe df
中添加一列col3
,其二进制结果为yes
或no
。
问题是col3
中的值应该以col1
和col2
为条件,即如果对于col1
中唯一值的所有示例,col2
的值也是yes
,则结果将是yes
。如果col2
中有一个或多个值为no
,则col3
中的相应行也应为no
。
逻辑的一个简单例子。
import pandas as pd
df={"col1": [1,1,1,2,3,3,4,4], "col2": ["yes","no","yes","no","yes","yes","yes","no"]}
df = pd.DataFrame(data=df)
col1 col2
0 1 yes
1 1 no
2 1 yes
3 2 no
4 3 yes
5 3 yes
6 4 yes
7 4 no
想要的结果。
df_new
col1 col2 col3
0 1 yes no
1 1 no no
2 1 yes no
3 2 no no
4 3 yes yes
5 3 yes yes
6 4 yes no
7 4 no no
2条答案
按热度按时间sd2nnvve1#
您可以使用有序的
CategoricalDtype
来完成您想要的任务:按字典顺序排列(是〈否):
CategoricalDtype
的优点是必须明确数据的顺序(Python的Zen)zhte4eai2#
另一种可能的解决方案:
输出: