pandas中的数值计算及统计基础
import pandas as pd
import numpy as np df = pd.DataFrame({
'key1': [4, 5, 3, np.nan, 2],
'key2': [1, 2, np.nan, 4, 5],
'key3': [1, 2, 3, 'j', 'k']
}, index=['a', 'b', 'c', 'd', 'e'])
print(df)
print(df['key1'].dtype,df['key2'].dtype,df['key3'].dtype)
print('-------')
'''
key1 key2 key3
a 4.0 1.0 1
b 5.0 2.0 2
c 3.0 NaN 3
d NaN 4.0 j
e 2.0 5.0 k
float64 float64 object
-------
'''
# 计算每一列的均值 df.mean()
# 只统计数字列,默认忽略nan。
print(df.mean())
'''
key1 3.5
key2 3.0
dtype: float64
'''
# 不忽略nan值计算均值
# skipna默认为True,如果为False,有NaN的列统计结果仍为NaN
m3 = df.mean(skipna=False)
print(m3)
'''
key1 NaN
key2 NaN
dtype: float64
'''
# 计算单一列的均值
print('计算单一列的均值',df['key2'].mean())
'''
计算单一列的均值 3.0
''' df2 = pd.DataFrame({
'key1': [1, 3, 5],
'key2': [2, 4, 6],
'key3': [3, 5, 7]
}, index=['a', 'b', 'c'])
# print(df2)
# print('--------df2')
# 计算df2每一行的均值并将其结果添加到新的列
df2['mean'] = df2.mean(axis=1)
print(df2)
'''
key1 key2 key3 mean
a 1 2 3 2.0
b 3 4 5 4.0
c 5 6 7 6.0
''' # 统计非NaN值的数量 count()
print(df)
print('-'*6)
print(df.count())
'''
key1 key2 key3
a 4.0 1.0 1
b 5.0 2.0 2
c 3.0 NaN 3
d NaN 4.0 j
e 2.0 5.0 k
------
key1 4
key2 4
key3 5
dtype: int64
''' # 统计
print(df)
print('-' * 6)
print('df的最小值',df.min())
print('df的最大值',df.max())
print('df的key2列的最大值',df['key2'].max())
print('统计df的分位数,参数q确定位置',df.quantile(q=0.75))
print('对df求和',df.sum())
print('求df的中位数,median(),50%分位数',df.median())
print('求df的标准差,std()',df.std())
print('求df的方差,var()',df.var())
print('求skew样本的偏度,skew()',df.skew())
print('求kurt样本的峰度,kurt()',df.kurt())
print('df累计求和,cumsum()',df['key2'].cumsum())
print('df累计求积,cumprod()',df['key2'].cumprod())
print('求df的累计最大值,cummax()', df['key2'].cummax())
print('求df的累计最小值,cummin()', df['key2'].cummin())
'''
key1 key2 key3
a 4.0 1.0 1
b 5.0 2.0 2
c 3.0 NaN 3
d NaN 4.0 j
e 2.0 5.0 k
------
df的最小值 key1 2.0
key2 1.0
dtype: float64
df的最大值 key1 5.0
key2 5.0
dtype: float64
df的key2列的最大值 5.0
统计df的分位数,参数q确定位置 key1 4.25
key2 4.25
Name: 0.75, dtype: float64
对df求和 key1 14.0
key2 12.0
dtype: float64
求df的中位数,median(),50%分位数 key1 3.5
key2 3.0
dtype: float64
求df的标准差,std() key1 1.290994
key2 1.825742
dtype: float64
求df的方差,var() key1 1.666667
key2 3.333333
dtype: float64
求skew样本的偏度,skew() key1 0.0
key2 0.0
dtype: float64
求kurt样本的峰度,kurt() key1 -1.2
key2 -3.3
dtype: float64
df累计求和,cumsum() a 1.0
b 3.0
c NaN
d 7.0
e 12.0
Name: key2, dtype: float64
df累计求积,cumprod() a 1.0
b 2.0
c NaN
d 8.0
e 40.0
Name: key2, dtype: float64
求df的累计最大值,cummax() a 1.0
b 2.0
c NaN
d 4.0
e 5.0
Name: key2, dtype: float64
求df的累计最小值,cummin() a 1.0
b 1.0
c NaN
d 1.0
e 1.0
Name: key2, dtype: float64
''' # 唯一值 :unique()
s = pd.Series(list('kjdhsakjdhjfh'))
sq = s.unique()
print(s)
print(sq)
print('sq的类型:',type(sq))
print('对sq进行重新排序:',pd.Series(sq).sort_values())
'''
0 k
1 j
2 d
3 h
4 s
5 a
6 k
7 j
8 d
9 h
10 j
11 f
12 h
dtype: object
['k' 'j' 'd' 'h' 's' 'a' 'f']
sq的类型: <class 'numpy.ndarray'>
对sq进行重新排序: 5 a
2 d
6 f
3 h
1 j
0 k
4 s
dtype: object
'''
# 对某一列进行值的计数,只能对一列,不能对Dataframe
print(df['key2'].value_counts()) # 判断Dataframe中的每个元素是否都是在某个列表中
print(df)
df_isin = df.isin([1,3])
print(df_isin)
'''
key1 key2 key3
a 4.0 1.0 1
b 5.0 2.0 2
c 3.0 NaN 3
d NaN 4.0 j
e 2.0 5.0 k key1 key2 key3
a False True True
b False False False
c True False True
d False False False
e False False False
'''
pandas中的数值计算及统计基础的更多相关文章
- Pandas中DateFrame修改列名
Pandas中DateFrame修改列名 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas ...
- pandas中的分组技术
目录 1 分组操作 1.1 按照列进行分组 1.2 按照字典进行分组 1.3 根据函数进行分组 1.4 按照list组合 1.5 按照索引级别进行分组 2 分组运算 2.1 agg 2 ...
- 数据分析面试题之Pandas中的groupby
昨天晚上,笔者有幸参加了一场面试,有一个环节就是现场编程!题目如下: 示例数据如下,求每名学生(ID)对应的成绩(score)最高的那门科目(class)与ID,用Python实现: 这个题目 ...
- python – 基于pandas中的列中的值从DataFrame中选择行
如何从基于pandas中某些列的值的DataFrame中选择行?在SQL中我将使用: select * from table where colume_name = some_value. 我试图看看 ...
- pandas中的空值处理
1.空值 1.1 有两种丢失数据: None: Python自带的数据类型 不能参与到任何计算中 np.nan: float类型 能参与计算,但结果总是nan # None+2 # 报错 # np.n ...
- Pandas中关于accessor的骚操作
来自:Python那些事 pandas中accessor功能很强大,可以将它理解为一种属性接口,通过它获得额外的方法. 下面用代码和实例理解一下: import pandas as pd pd.Ser ...
- 分位函数(四分位数)概念与pandas中的quantile函数
p分位函数(四分位数)概念与pandas中的quantile函数 函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpola ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Pandas中DataFrame修改列名
Pandas中DataFrame修改列名:使用 rename df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01- ...
随机推荐
- [IOI2014] 假期
Description 有\(N(N\leq 10^5)\)个排列在一条线上的城市,每个城市有\(val_i\)个景点.每天你可以选择在当前城市\(i\)游览景点,或者前往城市\(i-1\)或城市\( ...
- 性能监控(1)--linux下的top命令
Linux下的监控工具 top命令 top命令能够实时显示系统中各个进程的资源占用情况,其输出信息分为两部分,前半部分为系统统计信息,后半部分是进程信息. 第一行是任务队列信息,它的结果等同于upti ...
- What is The Rule of Three?
Question: What does copying an object mean? What are the copy constructor and the copy assignment op ...
- HDU4287
Intelligent IME Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Docker 轻量级图形管理软件 Portainer
安装 docker swarm :https://www.cnblogs.com/klvchen/p/9437758.html portainer 集群启动 docker volume create ...
- c++中的this指针和c#中的this引用
先总结一下: 在c++中this为指针,使用"->"操作符来获取当前实例中的成员 在c#中this为引用,使用"."操作符来获取当前实例中的成员 下面内容 ...
- JS函数声明与定义,作用域,函数声明与表达式的区别
Scoping & Hoisting 例: var a = 1; function foo() { if (!a) { var a = 2; } alert(a); }; foo(); 上面这 ...
- 从零开始学习html(三) 认识标签(第二部分)
一.使用ul,添加新闻信息列表 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Ty ...
- Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Spring Boot 中配置文件application.properties使用
一.配置文档配置项的调用(application.properties可放在resources,或者resources下的config文件夹里) package com.my.study.contro ...