【问题标题】:Merge Rows based on similar values in some columns根据某些列中的相似值合并行
【发布时间】:2021-06-24 06:25:02
【问题描述】:

我需要帮助,我最近开始学习 python。请问,如何将具有相同“PatientID”和相同“Resource”的行合并为“StartDate”和“EndDate”作为合并行的平均值?

enter image description here

【问题讨论】:

  • 您只需要这 4 列还是您也想保留另一列?
  • 你能给出一个格式好的输出示例吗?
  • 您的问题似乎是您希望按PatientIdResource 分组,而不是“合并”。但是,请求的聚合:StartDateEndDate 的平均值似乎不正确。这将告知您有关患者资源的哪些信息?
  • 是的,我现在明白 StartDate 和 EndDate 的平均值是不可能的。 @OluwafemiSule。
  • @exudong,我添加了一张图片作为我想要获取的示例,请查看

标签: python pandas dataframe pandas-groupby


【解决方案1】:

鉴于df 是包含您的数据的pandas.DataFrame 的名称。

要获取每个患者资源中最早的StartDateEndDate,可以这样写:

# Group by the 'PatientID' and 'Resource' columns
grouped_df =  df.groupby(['PatientID', 'Resource'])

# Select Earliest `StartDate` and `EndDate` from aggregate.
grouped_df = grouped_df.min(['StartDate', 'EndDate'])

# Remove levels from the index.
grouped_df.reset_index(inplace=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2011-03-27
    • 1970-01-01
    • 2023-03-15
    • 2021-01-31
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多