【发布时间】:2021-07-09 14:45:00
【问题描述】:
我有以下 pd.DataFrame 表示优化问题的约束。
FEATURE COLOR CLASS CONSTRAINTS
0 1.0 NaN NaN 0.20
1 3.0 NaN NaN 0.20
2 1.0 1.0 NaN 0.15
3 1.0 NaN b -0.05
4 1.0 1.0 a -0.07
5 1.0 1.0 b -0.10
6 3.0 1.0 NaN 0.10
7 NaN NaN NaN 0.20
这里FEATURE代表一个可能值为[1,2,3]的分类变量,COLOR代表一个可能值为[1,2]的分类变量,CLASS是另一个可能值为[a,b,c,d]的分类变量。
此处的缺失值具有“所有其他值”的含义。 从这个意义上说,数据框是包含所有或部分列类别组合的更大数据框的压缩版本。
我想在这里做的是将 NaN 值“扩展”为每个单独的列可以表示的所有可能值。
例如,第 0 行将扩展为总共 8 行,这是“免费”功能的乘积,即 COLOR 的可能值 [1,2] 和 CLASS 的可能值 `[a,b,c,d]``
new FEATURE COLOR CLASS CONSTRAINTS
0 1 1 a 0.2
1 1 1 b 0.2
2 1 2 a 0.2
3 1 2 b 0.2
4 1 1 a 0.2
5 1 1 b 0.2
6 1 2 a 0.2
7 1 2 b 0.2
如何在 Pandas 中有效地执行这种转换?
【问题讨论】:
-
请分享完整数据框的预期输出。如果@MustafaAdyin 解决方案是您所追求的,请接受它
标签: python pandas dataframe categorical-data