【问题标题】:Shape of passed values is (1, 32561), indices imply (2, 32561)传递值的形状是 (1, 32561),索引意味着 (2, 32561)
【发布时间】:2023-03-12 02:11:01
【问题描述】:

在 LabelBinariring 列 Sex 之后,我正在尝试将新列加入 pandas。 df["sex"].value_counts() 返回

 Male      21790
 Female    10771
Name: sex, dtype: int64

但是当我执行这个

    from sklearn.preprocessing import LabelBinarizer
    binarize=LabelBinarizer()
    data_o=df.join(pd.DataFrame(binarize.fit_transform(data["sex"]),
columns=binarize.classes_,index=data.index))

我得到了错误

Shape of passed values is (1, 32561), indices imply (2, 32561)

然而性别栏是由两种类型(男性和女性)组成的。我怎样才能解决这个问题。请帮忙

【问题讨论】:

    标签: pandas join


    【解决方案1】:

    你能做到吗:

    binarize.fit_transform(data["sex"]).shape
    len(binarize.classes_)
    

    看看输出是什么?

    【讨论】:

    • binarize.fit_transform(data["sex"]).shape 返回 (32561, 1) 但 len(binarize.classes_) 返回 2 为什么 binarize.fit_transform(data["sex"]).shape不返回 (32561, 2) 让我崩溃 @ugn
    • @onexpeters 可能是形状应该只有一列?
    • 你是对的,列应该是一个(男性和女性为0,1),感谢您的洞察力。
    • @onexpeters 如果是正确答案,请采纳,谢谢
    猜你喜欢
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2019-08-25
    • 2020-11-09
    • 1970-01-01
    • 2013-11-06
    相关资源
    最近更新 更多