gpt4 book ai didi

python - 将数组存储为 Pandas 列中的值

转载 作者:行者123 更新时间:2023-12-01 09:15:23 25 4
gpt4 key购买 nike

我有一个包含两列分类标签数据(NBA 球队名称)的数据集。我想要做的是使用一种热编码来生成一个二进制一维向量作为代表每个团队的数组。这是我的代码:

from sklearn.preprocessing import MultiLabelBinarizer
one_hot_encoder = MultiLabelBinarizer()
table["Teams"] = one_hot_encoder.fit_transform(table["Teams"])

编码器正常工作,并相应地生成数组。换句话说,

one_hot_encoder.fit_transform(table["Teams"])

正确生成以下内容:

Link to encoder result screenshot

但是,当我尝试将数组存储到列中时,如下所示:

table["Teams"] = one_hot_encoder.fit_transform(table["Teams"])

似乎没有正确保存。

Link to data frame result screenshot

相反,看起来该列只是获取每个数组的第一个值,而不是存储整个数组。我应该如何解决这个问题?

最佳答案

我认为需要将2d数组转换为list:

table = pd.DataFrame({"Teams":list('aaasdffds')})

from sklearn.preprocessing import MultiLabelBinarizer
one_hot_encoder = MultiLabelBinarizer()

table["Teams"] = one_hot_encoder.fit_transform(table["Teams"]).tolist()
print (table)
Teams
0 [1, 0, 0, 0]
1 [1, 0, 0, 0]
2 [1, 0, 0, 0]
3 [0, 0, 0, 1]
4 [0, 1, 0, 0]
5 [0, 0, 1, 0]
6 [0, 0, 1, 0]
7 [0, 1, 0, 0]
8 [0, 0, 0, 1]

但是不建议将数组或列表存储到一列,因为不可能使用矢量化方法/函数,更好的是创建DataFrame:

table = pd.DataFrame(one_hot_encoder.fit_transform(table["Teams"]), 
columns=one_hot_encoder.classes_)
print (table)

a d f s
0 1 0 0 0
1 1 0 0 0
2 1 0 0 0
3 0 0 0 1
4 0 1 0 0
5 0 0 1 0
6 0 0 1 0
7 0 1 0 0
8 0 0 0 1

关于python - 将数组存储为 Pandas 列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51319692/

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