在表单的数据框架中有一些医院访问医疗保健数据:
COUNSELLING_COUNT更新
在我最初的答案中,我忽略了一个事实,即如果某人没有咨询日期,我的方法将为他们的第一个条目分配一个1
。这里有两个快速的方法来解决这个问题。
一个选项是在执行groupby i describe:
之前显式地删除那些带有NA的行。dropped = df[~df['DATE_COUNSELLING'].isna()]
df.loc[:, 'COUNSELLING_STARTED'] = 0
df.loc[dropped['DATE_COUNSELLING'].isna().groupby(dropped['CLIENT_ID']).idxmin(), 'COUNSELLING_STARTED'] = 1
# note that `dropped` is used inside the brackets in the last line
第二种选择是简单地按照我之前的方法做,但然后覆盖错误的条目(即,咨询是NA):
df.loc[:, 'COUNSELLING_STARTED'] = 0
df.loc[df['DATE_COUNSELLING'].isna().groupby(df['CLIENT_ID']).idxmin(), 'COUNSELLING_STARTED'] = 1
df.loc[df['DATE_COUNSELLING'].isna(), 'COUNSELLING_STARTED'] = 0
# last line catches people with no counseling
这是我最初的回答:
df.loc[:, 'COUNSELLING_STARTED'] = 0
df.loc[df['DATE_COUNSELLING'].isna().groupby(df['CLIENT_ID']).idxmin(), 'COUNSELLING_STARTED'] = 1
解释(使用我的第一种方法):
查找咨询日期为nan
的地方;然后按客户端id分组并找到最小值的索引(这将是第一个条目):
>>> dropped['DATE_COUNSELLING'].isna().groupby(dropped['CLIENT_ID']).idxmin()
CLIENT_ID
54950 3
67777 7
70000 8
Name: DATE_COUNSELLING, dtype: int64
您使用这些索引来选择在新列中写入1
的位置。即使dropped
没有任何NA值,我们仍然在groupby中使用.isna()
,以便获得我们可以使用min
的值(而不是字符串)。你也可以像.astype(bool)
.
最后的df
是:
CLIENT_ID DATE_ENCOUNTER ... COUNSELLING_COUNT COUNSELLING_STARTED
0 54950 2017-11-24 ... 0 0
1 54950 2018-01-19 ... 0 0
2 54950 2018-03-13 ... 0 0
3 54950 2018-05-11 ... 1 1
4 54950 2018-12-17 ... 3 0
5 67777 2015-09-01 ... 0 0
6 67777 2015-12-01 ... 0 0
7 67777 2016-02-28 ... 1 1
8 70000 2019-06-07 ... 1 1
9 70000 2019-08-09 ... 1 0
[10 rows x 5 columns]
如果你想明确选择最早的咨询日期(而不是第一个非na值),你可以使用这个作为你的索引器:
>>> pd.to_datetime(dropped['DATE_COUNSELLING']).groupby(dropped['CLIENT_ID']).idxmin()
CLIENT_ID
54950 3
67777 7
70000 8
Name: DATE_COUNSELLING, dtype: int64
这在这里给出了相同的结果,因为日期是为每个客户端排序的(即最早观察到的日期是第一个非na值)。
相关内容
- React:为什么我的变量只在第一次渲染上定义,但在随后的渲染上未定义?
- 为什么剧作家在非串行模式第一次失败后不设置共享变量?
- SwiftUI - 绑定变量仅在第一次更新原始值,然后不再更新
- char 变量在 char = 时第一次不会更改值?
- 在 bash 中,我可以设置一个仅在第一次访问命令时执行命令的环境变量吗?
- 只有循环的第一次迭代输出动态变量
- useState变量在第一次运行代码片段时未设置
- React中的变量在第一次渲染时未定义,但在重新渲染后定义.(未捕获的TypeError:变量未定义)
- C语言 如何阻止变量在第一次循环后改变值
- 我的布尔块状态变量在第一次重新赋值后停止改变
- 第二次调用函数会影响第一次调用的变量
- 初始化我的变量在第一次单击时不起作用,但第二次单击它起作用
- 冻结变量False / True以更改-使其在第一次更改后不可变
- 在before中设置的变量不能在第一次测试后的beforeEach中访问
- 变量在第一次调用后丢失
- 如何在第一次调用函数后清除变量的内存
- 为什么我的变量在第一次循环后突然停止计数?
- 第一次传递变量时调用方法效果良好,第二次使用的变量未定义
- 有没有一种方法可以将一个值设置为不同类中的一个变量,并让它保持第一次运行时的值,而不必每次都运行
- 第一次变量存储它是未定义的,每隔一次它的工作?使用jQuery, JavaScript, Ajax
最新更新
- 函数式语言类型推断混乱
- 使用Python从大文件解析数字数据时提高速度
- 如何从Multipass共享文件夹到主机?
- 从CMD或批处理文件中禁用"Notify me when the clock changes"设置
- 在Dockerfile中设置——net=host ?
- 如何在React中将arrayBuffer转换为JSON
- 是否有可能将html响应转换为json在扑动?
- 快速过滤numpy数组值的方法
- C保存字符串的数组列表
- 需要minio film配置建议
- 如何应用CSS字体大小"relative to what it would be originally"?
- 该应用程序在个人帐户中未绑定脚本时被阻止错误
- 将原始查询转换为django orm
- 如何从出现次数和值的列表中创建一个新列表
- 使用Julia中的Julia Broadcasting根据数组的索引计算数组值
- 在javascript中使用条件更新嵌套数组
- for循环多个条件
- 将第一列中的名称行转换为r中的列
- Nx张量的映射切片
- Dotnet Core Azure功能(隔离进程)如何加载应用程序.每个环境的Json
- Discordjs不发送消息
- 边框在css中不显示
- Python pandas中的深度嵌套JSON规范化
- 如何在JSON模式中从正确的对象中选择特定的字段
- 我可以在REST API中直接通过POST发送电话号码吗?
- "onPressed: () {}"在颤振中不起作用
- FbLitho在RecyclerCollectionComponent中重复视图,即使加载了新部分
- Spring Data JPA对多对多关系的查询返回所有记录,而不是匹配的记录
- 在使用const断言递归时更改函数参数以接受子函数
- 我们可以通过调用Power BI Service/Workspace的export功能导出嵌入式Power BI报表的P
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium