【问题标题】:suppress Name dtype from python pandas describe从 python pandas describe 中抑制 Name dtype
【发布时间】:2017-03-09 19:08:37
【问题描述】:

假设我有

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() 实现这个输出

【问题讨论】:

  • 如果我或其他答案有帮助,请不要忘记accept 它 - 单击答案旁边的复选标记 () 将其从灰色切换为已填充。谢谢。

标签: python pandas dataframe format series


【解决方案1】:

如果需要输出为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

【讨论】:

  • 工作完美。
  • @Alex - 谢谢。
【解决方案2】:

更好的答案
在数据帧上使用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

【讨论】:

  • 我使用的是value_counts 而不是describe,所以我想保留索引并删除尾随换行符:df.reset_index().to_csv(header=None,index=None,sep='\t')[:-1]
猜你喜欢
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 2015-12-26
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
相关资源
最近更新 更多