我有两个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”,但我不能这样做,因为输出是不是一个数据帧。
cvl_totals
应该是一个系列的对象,你可以变成使用to_frame()
method一个数据帧,然后合并这DF2。
但是好像你正在做一个列GROUPBY,所以如果你想扩大在整个行中的值(即一个FIN所有列将具有相同cvl_total
),那么这里所描述你可以这样做:Conditionally fill column values based on another columns value in pandas