我有一个外形为(12000,21)的数据框,看起来像这样:
id CID U_lot P4 P5 P6 P7 P8 P9
0 A0694 M 0 1 0 1 1 0
1 A1486 M 0 0 1 0 0 0
2 C0973 S 0 1 1 0 0 0
3 B4251 D 0 0 0 1 0 1
4 I0041 S 1 0 0 1 1 0
5 J1102 F 0 0 0 0 0 1
如何将数据帧转换为如下所示:
id CID U_lot P_lots Label
0 A0694 M [P5,P7] P8
1 A0694 M [P5,P8] P7
2 A0694 M [P7,P8] P5
3 A1486 M NAN P6
4 C0973 S [P5] P6
5 C0973 S [P6] P5
6 B4251 D [P7] P8
7 B4251 D [P8] P7
8 I0041 S [P4,P7] P8
9 I0041 S [P4,P8] P7
10 I0041 S [P7,P8] P4
11 J1102 F NAN P9
我试过扭转pd.get_假人,但似乎不起作用
获取
list
列确实会降低效率。但是如果有必要,首先stack
(或melt
)将数据帧转换为长格式。此时,还要跟踪最终输出中所需的所有行(稍后获取这些NaN
行所必需的)然后,我们将把这个长数据帧与其自身合并,这样我们就可以得到所有的
'P_lots'
,不包括用query
分割出来的标签最后,
groupby
获取列表,并重新索引以获取NaN
相关问题 更多 >
编程相关推荐