gpt4 book ai didi

python - 如何对 pandas.Series 列进行二进制分解

转载 作者:行者123 更新时间:2023-11-30 09:12:34 24 4
gpt4 key购买 nike

我想将 pandas.Series 分解为其他几个列(列数 = 值数),保存分解并将其与其他 DataFrame系列。像 pandas.get_dummies 这样的东西会记住映射并可以处理 NaN

示例。
给定以下DataFrame:


甲乙
0个0
1 乙 1
2个2
3c 3

我想将系列A分解为:


A_a A_b A_c B
0 1 0 0 0
1 0 1 0 1
2 1 0 0 2
3 0 0 1 3

然后我想保存该分解并将其应用到其他 DataFrame (查看输入在 A 列中没有 c 值):


A B A_a A_b A_c B
0 一 0 0 1 0 0 0
1 个 1 -> 1 1 0 0 1
2b 2 2 0 1 0 2

有什么自动的方法吗?我可以手动完成。我正在尝试scikit-learn LabelEncoder但它不处理 NaN。我想将它用于分类模型。

最佳答案

我认为没有办法自动执行此操作:

In [11]: res = df.pop("A").str.get_dummies()  # Note: pop removes column A from df

In [12]: res.columns = res.columns.map(lambda x: "A_" + x)

In [13]: res
Out[13]:
A_a A_b A_c
0 1 0 0
1 0 1 0
2 1 0 0
3 0 0 1

In [14]: res.join(df)
Out[14]:
A_a A_b A_c B
0 1 0 0 0
1 0 1 0 1
2 1 0 0 2
3 0 0 1 3
<小时/>

为了标准化,我会在您想要的列上使用 reindex_axis。即强制 df2 具有 df1 的列。

df2.reindex_axis(df1.columns, axis=1, fill_value=0)

关于python - 如何对 pandas.Series 列进行二进制分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30039988/

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