我之前曾问过这个问题,但是我得到的答案并没有像我想的那样得出来,所以我就在这里。
上一个问题:Defining a function for changing column values and creating new datasets
我正在尝试定义一个函数,该函数将采用一个数据框并更改列中的值以创建多个新数据框。
以df1为例,如下所示:
gradle-4.8-all.zip
classpath 'com.android.tools.build:gradle:3.2.0-beta05'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51"
compileSdkVersion 28
buildToolsVersion '28.0.2'
minSdkVersion 23
targetSdkVersion 28
我正在尝试创建多个二进制类来实现一对一分类。因此该函数将创建...
df1:
class colB colC
0 1 1b 1c
1 2 2b 2c
2 3 3b 3c
3 1 4b 4c
4 2 5b 5c
,依此类推。所有唯一值都是1到120之间的增量值。
先前答案给出(np.identity)的问题是它创建了将每个单个值都设为1或-1的数据帧,而不是将相同的值归为同一类。
谢谢
答案 0 :(得分:2)
使用<template>
<div>
ComponentB
<ComponentA></ComponentA>
</div>
</template>
<script>
import ComponentA from "./ComponentA.vue";
export default {
name: "ComponentB",
beforeCreate() {
this.$options.components.ComponentA = require("./ComponentA");
},
components: { ComponentA }
};
</script>
和beforeCreate() {
this.$options.components.ComponentA = require("./ComponentA");
}
的类似想法(再次重命名np.where
列,因此它不会覆盖内置名称):
unique
class
答案 1 :(得分:1)
与@ user3483203类似,但使用mask
和fillna
:
[df.assign(**{'class' : df['class'].mask(df['class'].ne(cls)).fillna(-1)})
for cls in df['class'].unique()
]
[ class colB colC
0 1.0 1b 1c
1 -1.0 2b 2c
2 -1.0 3b 3c
3 1.0 4b 4c
4 -1.0 5b 5c, class colB colC
0 -1.0 1b 1c
1 2.0 2b 2c
2 -1.0 3b 3c
3 -1.0 4b 4c
4 2.0 5b 5c, class colB colC
0 -1.0 1b 1c
1 -1.0 2b 2c
2 3.0 3b 3c
3 -1.0 4b 4c
4 -1.0 5b 5c]