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中的数值计算及统计基础的更多相关文章

  1. Pandas中DateFrame修改列名

    Pandas中DateFrame修改列名 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas ...

  2. pandas中的分组技术

    目录 1  分组操作 1.1  按照列进行分组 1.2  按照字典进行分组 1.3  根据函数进行分组 1.4  按照list组合 1.5  按照索引级别进行分组 2  分组运算 2.1  agg 2 ...

  3. 数据分析面试题之Pandas中的groupby

      昨天晚上,笔者有幸参加了一场面试,有一个环节就是现场编程!题目如下:   示例数据如下,求每名学生(ID)对应的成绩(score)最高的那门科目(class)与ID,用Python实现: 这个题目 ...

  4. python – 基于pandas中的列中的值从DataFrame中选择行

    如何从基于pandas中某些列的值的DataFrame中选择行?在SQL中我将使用: select * from table where colume_name = some_value. 我试图看看 ...

  5. pandas中的空值处理

    1.空值 1.1 有两种丢失数据: None: Python自带的数据类型 不能参与到任何计算中 np.nan: float类型 能参与计算,但结果总是nan # None+2 # 报错 # np.n ...

  6. Pandas中关于accessor的骚操作

    来自:Python那些事 pandas中accessor功能很强大,可以将它理解为一种属性接口,通过它获得额外的方法. 下面用代码和实例理解一下: import pandas as pd pd.Ser ...

  7. 分位函数(四分位数)概念与pandas中的quantile函数

    p分位函数(四分位数)概念与pandas中的quantile函数 函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpola ...

  8. Python之Pandas中Series、DataFrame

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  9. Pandas中DataFrame修改列名

    Pandas中DataFrame修改列名:使用 rename df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01- ...

随机推荐

  1. [转]VS Code 扩展 Angular 6 Snippets - TypeScript, Html, Angular Material, ngRx, RxJS & Flex Layout

    本文转自:https://marketplace.visualstudio.com/items?itemName=Mikael.Angular-BeastCode VSCode Angular Typ ...

  2. [转]Windows下配置Node.js和Cordova

    本文转自:https://blog.csdn.net/weixin_37730482/article/details/74388056?locationNum=3&fps=1 本文讲解在win ...

  3. java_分解质因数

    题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个 ...

  4. 使用 json-server 模拟数据

    1. 先安装 npm install json-server -g 2.查看是否安装成功 json-server -h 3.准备数据,新建一个文件夹 mock,cd mock,在mock下 新建tes ...

  5. canvas-star7.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Django Rest framework 之 序列化

    RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...

  7. Berlekamp-Massey算法学习笔记

    Berlekamp-Massey算法 很久之前就听说过这个算法,当时六校联考的时候Day1T1是一道很有意思的递推,神仙zzx不会做于是就拿BM算法艹出了递推式Orzzzzzzzzzzx 推荐一篇讲的 ...

  8. GIS小知识

    1.GeoJson 2.EPSG:3857 几何对象:{"id":0,"style":null,"parts":[1],"poin ...

  9. Ajax的实现及使用-zepto

    正文 之前归纳了ajax技术的基础知识,汗颜的是这两篇本应该在年初补上的,但因为种种原因,并没有补上.不过还好最近有空,所以开始整理之前的日记.共分为两篇:对于zepto ajax代码的实现解析;对于 ...

  10. HTML中令人惊喜的全局属性

    1.accesskey 属性 : 规定激活元素的快捷键. 浏览器支持:几乎所有浏览器均 accesskey 属性,除了 Opera. 定义和用法 accesskey 属性规定激活(使元素获得焦点)元素 ...