您的位置:首页 > 其它

pandas的汇总和计算描述统计

2018-01-07 21:37 260 查看
pandas提供了很多常用的数学和统计方法,其中大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。

[b]一、DataFrame的sum和mean方法[/b]
a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
print(data)
'''
one two three
a 1 NaN 9.0
b 2 8.0 3.0
c 3 5.0 NaN
'''
#对列求和
print(data.sum())
'''
one 6.0
two 13.0
three 12.0
'''
#对行求和
print(data.sum(axis=1))
'''
a 10.0
b 13.0
c 8.0
'''
#对行求平均值,默认排除NaN值
print(data.mean(axis=1))
'''
a 5.000000
b 4.333333
c 4.000000
'''
#对行求平均值,禁用自动排除NaN值
print(data.mean(axis=1,skipna=False))
'''
a NaN
b 4.333333
c NaN
'''

[b]二、统计[/b]

a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"])
print(data)
'''
a b c
0 1 NaN 9.0
1 2 8.0 3.0
2 3 5.0 NaN
'''
#返回每一列中最大值的行索引
print(data.idxmax())
'''
a 2
b 1
c 0
'''
#返回每一列中最小值的行索引
print(data.idxmin())
'''
a 0
b 2
c 1
'''
#对每列的值进行累加
print(data.cumsum())
'''
a b c
0 1.0 NaN 9.0
1 3.0 8.0 12.0
2 6.0 13.0 NaN

'''
上面的操作都是对于列,如果想要对行进行操作,只需要在方法中设置axis参数为1即可。

三、描述
a、DataFrame

a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"])
print(data)
'''
a b c
0 1 NaN 9.0
1 2 8.0 3.0
2 3 5.0 NaN
'''
#列出DataFrame的描述
'''
四分位数用于绘制箱线图判断是否为异常值
count:该列(行)非NA值的个数
mean :该列(行)的均值
std :该列(行)的方差
25% :上四分位数
50% :非NA值的平均数
75% :下四分位数
max :最大值
'''
print(data.describe())
'''
a b c
count 3.0 2.00000 2.000000
mean 2.0 6.50000 6.000000
std 1.0 2.12132 4.242641
min 1.0 5.00000 3.000000
25% 1.5 5.75000 4.500000
50% 2.0 6.50000 6.000000
75% 2.5 7.25000 7.500000
max 3.0 8.00000 9.000000
'''

[b]b、Series[/b]

如果值是数值型的描述与DataFrame一致,下面展示当值为非数值的时候的描述。

s = Series(["a","b","b","d"])
print(s)
'''
0 a
1 b
2 b
3 d
'''
print(s.describe())
'''
count 4
unique 3
top b
freq 2
'''除了上面提到的方法之外,pandas还提供了许多的方法,如下表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: