在将get_dummies()
应用于特定的子列时,我希望保持列的多级结构。你知道吗
例如,给定数据帧:
In [1]: df = pd.DataFrame({('A','one'):['a','a','b'],
('A','two'):['b','a','a'],
('B','one'):['b','b','a'],
('B','two'):['a','a','a'],
('C','one'):['b','a','b'],
('C','two'):['a','b','a'],})
df
Out[1]:
A B C
one two one two one two
0 a b b a b a
1 a a b a a b
2 b a a a b a
我想按照以下思路制作一些东西:
A B C
one_a one_b two one_a one_b two one_a one_b two
0 1 0 b 0 1 a 0 1 a
1 1 0 a 0 1 a 1 0 b
2 0 1 a 1 0 a 0 1 a
如何生成与上述结果类似的结果?如何将子列编码为一个热向量而不影响数据帧的多级结构?你知道吗
我试过下面的代码,我明白为什么它不工作。我不能用两列代替一列。你知道吗
In [2]: df.loc[:, (slice(None),'one')] = pd.get_dummies(df.loc[:, (slice(None),'one')])
df
Out[2]:
A B C
one two one two one two
0 NaN b NaN a NaN a
1 NaN a NaN a NaN b
2 NaN a NaN a NaN a
我知道我也可以将drop_first=True
与get_dummies()
一起使用,但这会给我一列而不是两列,并且只适用于二进制变量。你知道吗
熊猫赋
备选方案
相关问题 更多 >
编程相关推荐