从多个变量创建复合变量并添加到数据框

Create composite variable from multiple variables and add to dataframe

我有一个包含三个租金中位数变量的数据框。数据框如下所示:

region_id year 1bed_med_rent 2bed_med_rent 3bed_med_rent
1 2010 800 1000 1200
1 2011 850 1050 1250
2 2010 900 1000 1100
2 2011 950 1050 1150

我想使用区域和年份的公共元素将所有租金变量合并为一个变量,如下所示:

region_id year med_rent
1 2010 1000
1 2011 1050
2 2010 1000
2 2011 1050

使用 pandas 中的 agg() 函数,我已经能够对多个变量执行函数,但我无法组合变量并插入到数据帧中。我尝试将 assign() 函数与以下代码结合使用但没有成功。

#Creating the group list of common IDs
group_list = ['region_id', 'year']

#Grouping by common ID and taking median values of each group
new_df = df.groupby(group_list).agg({'1bed_med_rent': ['median'],'2bed_med_rent': 
['median'], '3bed_med_rent': ['median']}).reset_index()

还有什么其他方法可以做到这一点?

这里 set_index 结合 apply 应用于行的其余部分应该这样做:

(df.set_index(['region_id','year'])
    .apply(lambda r:r.median(), axis=1)
    .reset_index()
    .rename(columns = {0:'med_rent'})
)

生产

    region_id   year    med_rent
0   1           2010    1000.0
1   1           2011    1050.0
2   2           2010    1000.0
3   2           2011    1050.0