python-3.x - 在我的代码中使用条件在熊猫数据框中生成新列
问题描述
代码的结果是
iccid ipAddress ... dateSessionEnded
0 89610185001538644952 10.129.22.157 ... 2020-11-27 12:37:27.270+0000
1 89610185001538532829 10.129.60.14 ... None
2 89610185002408618430 10.137.53.218 ... None
3 89610185002413572052 10.128.88.115 ... 2020-11-29 03:46:07.910+0000
4 89610185002407603007 10.136.93.119 ... 2020-11-26 00:01:37.018+0000
我正在尝试制作一个条件语句来添加另一列,其状态为如果数据会话结束为无,则如果它有一个日期值,则 sim 是“InSession”,然后是“Not In Session”。到目前为止,没有任何人能提供帮助。
亲切的问候,
解决方案
有多种方法可以完成此类任务。例如,经典的:
df.loc[~df.dateSessionEnded.isnull(), 'newcol'] = 'Not In Session'
df.loc[df.dateSessionEnded.isnull(), 'newcol'] = 'In Session'
或使用numpy.where
:
import numpy as np
df['newcol'] = np.where(df.dateSessionEnded.isnull(), 'In Session', 'Not In Session')
或使用map
(它也适用于replace
):
df['newcol'] = (df.dateSessionEnded.isnull()).map({True: 'In Session', False:'Not In Session'})
或where
使用replace
:
df['newcol'] = df.dateSessionEnded.where(lambda x: x.isnull(), 'Not In Session').replace({None:'In Session'})
等等...
输出:
iccid ipAddress dateSessionStarted dateSessionEnded newcol
0 89610185001538644952 10.129.22.157 2020-11-26 05:49:56.270+0000 2020-11-27 12:37:27.270+0000 Not In Session
1 89610185001538532829 10.129.60.14 2020-12-04 03:50:47.105+0000 None In Session
2 89610185002408618430 10.137.53.218 2020-12-03 20:32:08.436+0000 None In Session
数据:
df = pd.DataFrame([
{'iccid': '89610185001538644952', 'ipAddress': '10.129.22.157', 'dateSessionStarted': '2020-11-26 05:49:56.270+0000', 'dateSessionEnded': '2020-11-27 12:37:27.270+0000'},
{'iccid': '89610185001538532829', 'ipAddress': '10.129.60.14', 'dateSessionStarted': '2020-12-04 03:50:47.105+0000', 'dateSessionEnded': None},
{'iccid': '89610185002408618430', 'ipAddress': '10.137.53.218', 'dateSessionStarted': '2020-12-03 20:32:08.436+0000', 'dateSessionEnded': None}
])
推荐阅读
- python - DRF SimpleJWT 删除密码并添加日期字段
- javascript - 如何在 Firebase Auth 中检测 3rd 方 cookie 的失败
- html - 角度模板驱动形式中的动态元素参考
- java - 在 Spring 中使用 JWT 和 x509
- webex - 有没有办法将 webex 配置为在参与者开始输入时自动静音?
- reactjs - 在反应中为未定义的值做 setState 是否安全
- excel - 应该针对特定打开工作簿的功能似乎正在使用活动簿
- python - Pandas DataFrame 沿新轴连接
- angular - 错误 RangeError:Object.getApps 超出了最大调用堆栈大小
- typescript - 打字稿抛出“不可分配给类型'IntrinsicAttributes&{children?:ReactNode;}”