如何在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
答案 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,平均值,方差,总数,唯一计数,缺失值,列类型等等。