python - 根据其他列的内容创建新列
问题描述
我有一个数据框,显示在这里。
我想创建一个名为的新列Result
应根据以下规则创建结果。
- 返回基于列显示最多的值
D,F,M,P
IG
如果and之间有联系HY
,则返回HY
。- 不要算作
NaN
一个价值。
我生成的数据框会是这样的:
df_start = pd.DataFrame({'P':['IG','HY','IG',np.nan,'HY'], 'M':['HY','HY','IG', np.nan,'IG'], 'F':['HY',np.nan,'HY', np.nan,'IG'],'D':['IG','IG','IG', 'HY','IG']})
df_result = pd.DataFrame({'Result':['HY','HY','IG', 'HY','IG'],'P':['IG','HY','IG',np.nan,'HY'], 'M':['HY','HY','IG', np.nan,'IG'], 'F':['HY',np.nan,'HY', np.nan,'IG'],'D':['IG','IG','IG', 'HY','IG']}
解决方案
使用mode
:
df_start['Result']= df_result.mode(1).iloc[:, 0]
输出:
P M F D Result
0 IG HY HY IG HY
1 HY HY NaN IG HY
2 IG IG HY IG IG
3 NaN NaN NaN HY HY
4 HY IG IG IG IG
推荐阅读
- c# - 为什么表达式主体方法中不需要 return 关键字
- python - 如果在另一个数据框列 pandas 中找到列中的值,则返回值
- python - 从导航抽屉 KivyMD 创建新屏幕
- python - 您如何使用 json.dumps 格式化 Python,以使您的 Lambda 函数正确响应 API Gateway?
- java - 从昵称获取用户 - Java Discord (JDA)
- amazon-web-services - Athena 存储查询结果的最佳实践
- sql - SQL "to" 关键字——特别是 POSTGRESQL
- airflow - 使用 Airflow ExternalTaskSensor 调度依赖的 ETL DAG
- azure-devops - 在 Azure DevOps 中为用户故事完成所有子任务时标记或通知
- excel - 如何通过更改变量一次将excel公式应用于多个单元格