我正在尝试运行ML模型,但我的自变量的结构与我的因变量不同。
自变量的结构如下:
id . month/year . var_a . var_b
0 . 01/2016 . 1 . 2
0 . 02/2016 . 2 . 1
1 . 01/2016 . 2 . 3
所以基本上,ID不是唯一的,而是与月/年列成唯一的对。
因变量看起来像这样:
id . 01/2016 . 02/2016 . ....
0 0 . 1 .
1 . 1 . 0
2 . 0 . 0
因此,此数据框每个月都有一列,0或1表示我的分类是或否。理想情况下,我希望依赖表的形状类似于独立的数据帧:
因变量的期望输出:
id . month/year . y
0 . 01/2016 . 0
0 . 02/2016 . 1
1 . 01/2016 . 1
1 . 02/2016 . 0
2 . 01/2016 . 0
2 . 02/2016 . 0
我无法绕过它如何做到这一点。
提前谢谢你。
答案 0 :(得分:0)
也许尝试pivot_table
:
df_pivot = pd.pivot_table(df,index=['id'],columns=['month/year'])
给你
var_a var_b
date 01/2016 02/2016 01/2016 02/2016
id
0 1.0 2.0 2.0 1.0
1 2.0 NaN 3.0 NaN
然后如果你想要展平多指数:
df_pivot.columns = [' '.join(col).strip() for col in df_pivot.columns.values]
给你:
var_a 01/2016 var_a 02/2016 var_b 01/2016 var_b 02/2016
id
0 1.0 2.0 2.0 1.0
1 2.0 NaN 3.0 NaN