gpt4 book ai didi

python - 使用 Pandas 进行反向二进制编码

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:32 26 4
gpt4 key购买 nike

我有一个 Pandas Dataframe,希望反转三列的二进制编码(即 get_dummies())。编码是从左到右:

    a   b   c
0 0 1 1
1 0 0 1
2 1 1 1
3 1 0 0

将导致一个新的类别列 C 取值 0-7:

    C
1 6
2 4
3 7
4 1

我不确定为什么这一行在 axis=1 附近给我一个语法错误:

df['C'] = df.apply(lambda x: (x['a']==1 ? 1:0)+(x['b']==1 ? 2:0)+(x['c']==1 ? 4:0), axis=1)

最佳答案

如果性能很重要,请使用 numpy - 首先将 DataFrame 转换为 numpy 数组,然后使用 bitwise shift :

a = df.values
#pandas 0.24+
#a = df.to_numpy()
df['C'] = a.dot(1 << np.arange(a.shape[-1]))
print (df)
a b c C
0 0 1 1 6
1 0 0 1 4
2 1 1 1 7
3 1 0 0 1

关于python - 使用 Pandas 进行反向二进制编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56302920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com