python - Python Pandas:将组的特定值分配给数据框中该组的所有条目
问题描述
我有一个带有下面列的数据框,使用它需要通过分组名称来创建新列。如果状态对任何一个 St..
data = {'Name':['Tom', 'Tom', 'krish', 'jack','jack','Nam','sue'],
'St':['S-123', 'S-290', 'S-123', 'S-147','S-98','S-123','S-38'],
'Status':['Inactive','active','active','inactive','active','Inactive','Inactive']}
df = pd.DataFrame(data)
所需的输出是
Name St Status New Status
0 Tom S-123 Inactive active
1 Tom S-290 active active
2 krish S-123 active active
3 jack S-147 inactive active
4 jack S-98 active active
5 Nam S-123 Inactive Inactive
6 sue S-38 Inactive Inactive
解决方案
你不需要分组,在一行你可以做到这一点
df['New Status'] = df.apply(lambda row: "active" if any(df.query('Name == @row.Name').Status == 'active') else "inactive", axis=1)
推荐阅读
- python - Tkinter 菜单栏似乎没有专注于 macOS
- vue.js - 无法通过 vue-router 传递数据来使道具工作
- julia - 错误:无法解析以下包名称:在 Julia 中安装包时出错
- python - 如何在 Tensorflow 服务模型中包含某些预处理步骤
- angular - Cloudfront 错误页面上未调用 Lambda@Edge 函数
- javascript - 将多级 json 数组追加到 html 表 javascipt
- java - Google 登录后 WebView 应用程序显示空白屏幕
- python-3.x - hvac python库 - 无法进行身份验证
- c++ - 您如何创建自己的视图,并使用运算符 | 与现有视图交互?
- python - Python使用密码将多个Excel合二为一