我从一个熊猫数据框切下来以创建对象标签。原始数据框中的列名称为y

现在,当我取label的总和并将其分配给m时,在打印时它始终显示y。为什么这样做,写y 50.0到底意味着什么?

>>> type(label)
<class 'pandas.core.frame.DataFrame'>
>>> label.head(2)
     y
0  1.0
1  1.0
>>> m = label.sum()
>>> m
y    50.0
dtype: float64
>>>

最佳答案

您的label数据框架仅包含1个列,该列名为y,其中包含50行1.0,因此它返回了sum of y。在您的代码中,该名称成为索引名称(单列的总和),因为DataFrame中的所有索引都需要一个名称,您可以使用m.index = <insert a name or int here>重命名该名称,但是m.index = None会引发TypeError异常。

>>> import pandas as pd
>>> import numpy as np

>>> df = pd.DataFrame(np.ones(50), columns=['y'])
>>> df.head(2)
     y
0  1.0
1  1.0
>>> df
      y
0   1.0
1   1.0
2   1.0
3   1.0
4   1.0
... # reducted
48  1.0
49  1.0
>>> df.sum()
y    50.0
dtype: float64

>>> m = df.sum()
>>> m
y    50.0
dtype: float64
>>> m.index
Index(['y'], dtype='object')
>>> m.index = None
Traceback (most recent call last):
 ...
TypeError: Index(...) must be called with a collection of some kind, None was passed

09-05 23:51