将Python Pandas的describe函数中的名称dtype排除在外

11

假设我有

r = pd.DataFrame({'A':1 ,
              'B':pd.Series(1,index=list(range(4)),dtype='float32')})

r['B'].describe()[['mean','std','min','max']] 的输出结果是:

mean    1.0
std     0.0
min     1.0
max     1.0
Name: B, dtype: float64

但从上面的输出结果来看,我该如何去掉或者抑制最后一行 "Name:B, dtype: float64"

我找到了一种方法来实现这个目标。

x=r['B'].describe()[['mean','std','min','max']]
print "mean ",x['mean'],"\nstd ",x['std'],"\nmin ",x['min'],"\nmax ",x['max']  

这将产生所需的输出:

mean  1.0 
std  0.0 
min  1.0 
max  1.0 

有没有一种清洁剂可以直接从pd.describe()获得这个输出?

2个回答

9

如果需要输出为 DataFrame,请添加 reset_index

x=r['B'].describe()[['mean','std','min','max']].reset_index()
print (x)
  index    B
0  mean  1.0
1   std  0.0
2   min  1.0
3   max  1.0

然后使用DataFrame.to_string

print (x.to_string(header=None, index=None))
mean  1.0
 std  0.0
 min  1.0
 max  1.0

1
工作完美。 - Alex F

5

更好的答案
在数据框上使用to_csv

rd = r.B.describe()[['mean','std','min','max']].reset_index()
print(rd.to_csv(header=None, index=None, sep='\t'))

mean    1.0
std     0.0
min     1.0
max     1.0

旧回答

for name, value in r['B'].describe()[['mean','std','min','max']].iteritems():
    print('{:<5s} {:2.1f}'.format(name, value))

mean  1.0
std   0.0
min   1.0
max   1.0

1
我之前使用的是 value_counts 而不是 describe,所以我想保留索引并删除尾随换行符: df.reset_index().to_csv(header=None,index=None,sep='\t')[:-1] - Neofish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接