获取一个输出并将其作为一个新列合并回另一个数据帧

2024-09-27 04:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,df1和df2,它们是从同一个数据集构建的,涉及一些患者信息

df1包含关于患者在同一类型的各种静脉输液中使用多长时间的信息,因此同一患者可能有多行,其中每行构成不同的静脉输液

在df2中,每一行都是一个不同的患者,列显示了患者接受某种类型静脉注射的总天数

我们关注的列是“FIN”和“行日”。“FIN”唯一标识患者,“行日”记录特定静脉注射的天数

在df1中,我按“FIN”将行分组,然后对每个不同的“FIN”的“Line Days”列求和。现在,我想获取这个groupby.agg()的输出,并通过匹配“FIN”将其作为新列添加到df2中

def sum_col(df, col1, col2):
    tot_line = df.groupby(col1)[col2].agg('sum')
    return tot_line

CVL_totals = sum_col(CVL_data, 'FIN', '# Line days')

输出如下:(注意:未显示实际翅片)

FIN
000000000    12
111111111    3
222222222    32
333333333    7

现在,我想将它合并到'FIN'上的df2,但我不能这样做,因为输出不是数据帧


Tags: 数据患者信息类型静脉lineaggdf1
1条回答
网友
1楼 · 发布于 2024-09-27 04:23:59

cvl_totals应该是一个系列对象,您可以使用^{} method将其转换为数据帧,然后将其合并到df2

但是,您似乎正在对一列执行groupby操作,因此如果您希望跨行扩展值(即,具有一个FIN的所有列都将具有相同的cvl_total),那么您可以按照此处所述执行:Conditionally fill column values based on another columns value in pandas

相关问题 更多 >

    热门问题