如何将(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,) ans (569,1)之间的区别。BUt他回答要求的形状是(569,)
发布于 2017-06-10 07:51:16
X = df[df.columns.drop('target')]
y = df['target']或者,您可以更改:
y = df.ix[:,'target': ]至:
y = df.ix[:,'target']PS .ix[]索引器在现代Pandas版本中不受欢迎,因此建议改用.loc[]
发布于 2017-07-01 07:10:53
y.shape给出了(569,1),因为调用y = df.ix[:,'target': ]会返回DataFrame类型。
形状( 569,)和(569,1)之间的区别是(569,)是串联类型,它只有一个维度,而(569,1)是一个二维DataFrame ('569‘-用于569行,'1’代表1列)。
调用y = df['target']应该会返回一个Series类型。
另外,请注意,不推荐使用.ix索引器,而更严格的.iloc和.loc索引器是这样的:
尽管如此,http://pandas.pydata.org/pandas-docs/version/0.20/whatsnew.html#deprecate-ix%22pandas%22仍然有效。
您还可以手动将“单列”DataFrame转换为系列,例如,here。
要检查变量的类型,您可以发现type(y)非常有用,它有助于解决类似的问题。
https://stackoverflow.com/questions/44470893
复制相似问题