例如a have数据框:
col1 col2
a a
b b
c e
d f
在第一列上训练了LabelEncoding之后,我得到的是这样的:
col1 col2
1 a
2 b
3 e
4 f
在第二列上创建的代码适合之后,我想要这样的东西:
col1 col2
1 1
2 2
3 5
4 6
最简单的方法是什么。谢谢。
答案 0 :(得分:0)
通过复制OP帖子中的示例来创建cmake_minimum_required(VERSION 3.0.0)
project(MYAPPLICATION VERSION 0.1.0)
add_library(MYAPPLICATION STATIC DriverFolder/Src/myDriver.c ApplicationFolder/Src/myApplication.c)
# Tell CMake where the header files are located
target_include_directories(MYAPPLICATION PUBLIC DriverFolder/Inc ApplicationFolder/Inc)
数据框,如下所示。
df
打印时其值如下:
df=pd.read_clipboard()
能否请您尝试以下。我在这里只给出了1st 6个字母,以防万一,在实际的Input_file中有它们。
col1 col2
0 a a
1 b b
2 c e
3 d f
输出如下。
dict1 = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
df.applymap(lambda s: dict1.get(s) if s in dict1 else s)
答案 1 :(得分:0)
您可以使用pd.factorize
进行编码:
v, k = pd.factorize(sorted(df.stack().unique()))
m = dict(zip(k.tolist(), (v+1).tolist()))
df.replace(m)
输出:
col1 col2
0 1 1
1 2 2
2 3 5
3 4 6
我认为真正的诀窍是将col1和col2堆叠在一起,然后将两个列表的值编码为一个。
le = LabelEncoder()
le.fit(df.stack())