以输出,并且把它合并到不同的数据帧作为新列

问题描述 投票:1回答:1

我有两个Dataframes,DF1和DF2,来自同一数据集构建对于一些患者信息。

DF1包含关于长病人如何分别对相同类型的各种信息的IV,因此对于其中每行构成一个不同的IV同一患者可能有多个行。

在DF2中,每行是一个独特的患者和列显示的总天数患者是在特定类型的IV的。

我们所关注的列是“FIN”和“行天”。 “FIN”唯一标识病人和“行天”文件多少天特定IV是英寸

在DF1,我已经通过分组为FIN行,然后总结出了“行天”栏目为每个不同的“FIN”。现在,我想借此groupby.agg(输出),并添加为新列通过匹配给DF2“FIN”。

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

现在,我要合并这DF2上“FIN”,但我不能这样做,因为输出是不是一个数据帧。

python pandas dataframe
1个回答
3
投票

cvl_totals应该是一个系列的对象,你可以变成使用to_frame() method一个数据帧,然后合并这DF2。

但是好像你正在做一个列GROUPBY,所以如果你想扩大在整个行中的值(即一个FIN所有列将具有相同cvl_total),那么这里所描述你可以这样做:Conditionally fill column values based on another columns value in pandas

© www.soinside.com 2019 - 2024. All rights reserved.