提问者:小点点

熊猫在使用describe()时不改变dtype


这大概和我对编程不了解有关。

如果我做了:

dict = {'A':[10.0, 9.10, 8.93, 9.5], 
        'B':[3.0, 7.45, 5.6, 10.3], 
        'C':[5.32, 4.30, 8.0, 9.8]} 

df = pd.DataFrame(dict)
df['A'].describe()

Out:
count     4.000000
mean      9.382500
std       0.475981
min       8.930000
25%       9.057500
50%       9.300000
75%       9.625000
max      10.000000
Name: A, dtype: float64

如果我尝试更改为整数类型

df['A'] = df['A'].round(0).astype('int32')
df['A'].describe()

Out:
count     4.00000
mean      9.50000
std       0.57735
min       9.00000
25%       9.00000
50%       9.50000
75%      10.00000
max      10.00000
Name: A, dtype: float64

好像没变。 然而:

df['A'].describe

Out:
<bound method NDFrame.describe of 
0    10
1     9
2     9
3    10
Name: A, dtype: int32>

后一个结果可以通过使用df.dTypes来确认。 这里发生了什么?

提前谢谢!


共2个答案

匿名用户

descripe()方法主要用于生成描述性统计信息。 可参照描述方式单据

若要检查数据类型,应使用dtypes

当您使用descripe方法时,它不会作为序列或数据帧返回。 它只是object的类型,其中包含一些数据。 您应该使用()检索数据。

匿名用户

descripy是DataFrame对象的方法。 要调用方法,必须使用括号。 没有括号,它只给出方法对象本身,而不是结果。

另外,如果您想将describe部分转换为int格式,您应该写:

df['A'] = df['A']
df['A'].describe().astype(int)

result:
count     4
mean      9
std       0
min       8
25%       9
50%       9
75%       9
max      10
Name: A, dtype: int64