熊猫数据框摘要表

时间:2018-02-19 23:18:09

标签: python pandas

如何在Pandas中汇总数据框,汇总各个操作。

例如,我使用了以下代码:

 df=pd.DataFrame(wb)

# Get list with headers
header1 = list(df)
count=df.count()

NaNs=df.isnull().sum()
sum=df.sum(0)
mean=df.mean()
median=df.median()
min= df.min()
max= df.max()
standardeviation= df.std()
nints=df.dtypes

但我只能将它们作为个别结果打印出来。我为每次计算得到这样的东西:

Unnamed: 0                  60
region                      50
IV_bins                     60
N                           60
meanbase                    60
cash                        60
dtype: int64

最后,我尝试在开头创建一个summarytable=[]表并尝试使用summarytable.append(count)等所有计算,但无法正确完成。我正在寻找的是这样的一些表格,我认为这也涉及转置计算:

          A    B 
Count     100  98
NANs      5    7
Mean      10   12.5
Median    14   8
...
Nints     95   96
NStr      5    2

要考虑的最后一件事。我注意到,对于某些计算,例如sum(),计算字符串是没有意义的,因此,当我打印结果时,字符串列不会打印任何内容。这是print(sum)的结果:(请注意区域是如何显示的)

Unnamed: 0                                                               1830
IV_bins                     [0,2.31e+06](2.31e+06,5.7e+06](5.7e+06,1.07e+0...
N                                                                     3680163
meanbase                                                              3.46248
cash                                                              9.00091e+09

2 个答案:

答案 0 :(得分:1)

似乎您可能会使用DataFrame.agg(),您可以使用它来构建自定义的.describe()输出。这是一个让你入门的例子:

import pandas as pd
import numpy as np

df = pd.DataFrame({ 'object': ['a', 'b', 'c'],
                    'numeric': [1, 2, 3],
                    'numeric2': [1.1, 2.5, 50.],
                    'categorical': pd.Categorical(['d','e','f'])
                  })


def nullcounts(ser):
    return ser.isnull().sum()


def custom_describe(frame, func=[nullcounts, 'sum', 'mean', 'median', 'max'],
                    numeric_only=True, **kwargs):
    if numeric_only:
        frame = frame.select_dtypes(include=np.number)
    return frame.agg(func, **kwargs)


custom_describe(df)

            numeric   numeric2
nullcounts      0.0   0.000000
sum             6.0  53.600000
mean            2.0  17.866667
median          2.0   2.500000
max             3.0  50.000000

答案 1 :(得分:1)

似乎有一个库正是这样做的。签出pandas-summary。对于每一列,它都可以为您提供计数,最小值,最大值,std,平均值,方差,总数,唯一计数,缺失值,列类型等等。