【问题标题】:How to split a (569 ,31 ) DataFrame into two with shapes (569 ,30) and (569, )如何将 (569 ,31 ) DataFrame 拆分为具有 (569 ,30) 和 (569, ) 形状的两个
【发布时间】:2017-11-12 05:52:42
【问题描述】:

如何将 (569 ,31) 数据框拆分为具有 (569 ,30) 和 (569, ) 形状的两个数据框

dataFrame 有 31 列-

df.columns 产生这个 -

Index([u'mean radius', u'mean texture', u'mean perimeter', u'mean area',
       u'mean smoothness', u'mean compactness', u'mean concavity',
       u'mean concave points', u'mean symmetry', u'mean fractal dimension',
       u'radius error', u'texture error', u'perimeter error', u'area error',
       u'smoothness error', u'compactness error', u'concavity error',
       u'concave points error', u'symmetry error', u'fractal dimension error',
       u'worst radius', u'worst texture', u'worst perimeter', u'worst area',
       u'worst smoothness', u'worst compactness', u'worst concavity',
       u'worst concave points', u'worst symmetry', u'worst fractal dimension',
       u'target'],
      dtype='object')

我需要把它分成两部分。 我做了这样的事情-

X = df.ix[:,'mean radius': 'worst fractal dimension']

y = df.ix[:,'target': ]

X.shape 给出 (569, 30) 与预期一致,但 y.shape 给出 (569,1)。 我不太明白 (569,) 和 (569, 1) 之间的区别。但他需要的答案是 (569,) 的形状

【问题讨论】:

    标签: python pandas dataframe data-analysis


    【解决方案1】:

    y.shape 给你 (569, 1) 因为调用 y = df.ix[:,'target': ] 会返回一个 DataFrame 类型。

    形状 (569,) 和 (569, 1) 的区别在于 (569,) 是 Series 类型并且它只有一个维度,而 (569, 1) 是具有两个维度 ('569' - 569 行和 '1' 为 1 列)。

    打电话 y = df['target'] 应该返回一个 Series 类型。

    另外,请注意,.ix 索引器已被弃用,取而代之的是更严格的 .iloc.loc 索引器:
    http://pandas.pydata.org/ 尽管如此,它仍然有效

    您也可以手动将“单列”DataFrame 转换为 Series 例如讨论here

    要检查变量的类型,您可以找到 type(y) 非常有用,它有助于解决类似问题

    【讨论】:

      【解决方案2】:
      X = df[df.columns.drop('target')]
      y = df['target']
      

      或者你可以改变:

      y = df.ix[:,'target': ]
      

      到:

      y = df.ix[:,'target']
      

      PS .ix[] 索引器在现代 Pandas 版本中已弃用,因此建议改用 .loc[]

      【讨论】:

        猜你喜欢
        • 2020-01-12
        • 2018-12-02
        • 2019-08-30
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 2019-04-05
        • 2021-08-13
        • 2019-11-25
        相关资源
        最近更新 更多