【发布时间】:2021-08-09 21:02:02
【问题描述】:
我在一家心理健康组织工作,我正在尝试从我们的数据库中提取独特的会话数据。问题如下。有时,当添加新信息(例如,附加签名)时,会添加一个全新的重复信息行,其中包含相同的信息,除了一个新值。我需要与会话(session_id)相关的所有唯一信息。这是一个例子:
import pandas as pd
df = pd.DataFrame({'session_id': [1, 1, 2, 3],
'signature': ['Bob', 'John', 'Bob', 'Bob'],
'patient_id': [1234, 1234, 1234, 1234],
'patient_name': ['Frank', 'Frank', 'Frank', 'Frank']})
df (example created for Jupyter Notebook)
这是我想为每个会话创建的内容:
final_df = pd.DataFrame({'session_id': [1],
'signature': ['Bob'],
'signature_2': ['John'],
'patient_id': [1234],
'patient_name': ['Frank']})
final_df
无论新的唯一值在哪里,我都想要这个输出。因此,如果会话中涉及其他患者,则会为新数据框生成一个名为 patient_name_2 的新列。任何帮助将不胜感激。
或者,如果这可以通过 MS SQL 中某种形式的 GROUP BY 从数据库级别完成,请告诉我。
【问题讨论】:
-
你的假设是,patient_id 始终是唯一的,session_id 应始终保持最低的 id 并且患者姓名始终相同?
-
是的,患者 ID 将始终与患者姓名相关联,因此如果涉及其他患者,则 ID 也会更改。
标签: python sql pandas dataframe