我如何通过在ColA中创建新列(按逗号“,”分割值)并指定其排序值来转换下面的数据集。是否正在为按空格“”拆分的ColB创建多行?同时创建另一列进行索引
当前数据帧
Record_No COlA ColB
1 A1,A2,A3 B1 B2
2 A4,A5 B3
3 A1,A4,A2
预期结果
NewNo. Record_No A1 A2 A3 A4 A5 ColB
1 1 1 2 3 0 0 B1
2 1 1 2 3 0 0 B2
3 2 0 0 0 1 2 B3
4 3 1 3 0 2 0 Blank
Tags:
您必须使用:
str.split
将COlA
和ColB
中的字符串转换为列表explode
将这些列表转换为行get_dummies
以生成包含0和1值的指示符列group-by.sum
对每个记录的行进行分组\u编号,ColB对困难的部分是,您希望使用排序值,而不仅仅是Ai列中的1。因此,我将使用
enumerate
获得排序值,并使用它乘以get_dummies
将提供的值可能代码:
它给出:
让我们继续:
我们有:
只需重命名列、分组值并删除现在无用的Coeff column
我们得到了期望值:
如果你需要新的号码。列,它现在是微不足道的:
我们终于做到了:
这可以通过三个简单的步骤来完成
首先,创建
ColB
的分解视图然后,使用
ColA
中的项目索引创建列然后将两者连接起来
输出
注意:如果需要,可以删除
COlA
相关问题 更多 >
编程相关推荐