pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

目录

常用数学统计方法总结
读取或保存数据

缺省值和异常值处理

  

常用数学统计方法总结

count 计算非NA值的数量
describe 针对Series或DataFrame列计算统计
min/max/sum 计算最小值 最大值 总和
argmin argmax 计算能够获取到最小值和最大值的索引位置(整数)
idxmin idxmax 计算能够获取到最小值和最大值的索引值
quantile 计算样本的分位数(0到1)
mean 值的平均数
median 值的中位数
mad 根据平均值计算平均绝对距离差
var 样本数值的方差
std 样本值的标准差
cumsum 样本值的累计和
cummin cummax 样本的累计最小值 最大值
cumprod 样本值的累计积
pct_change 计算百分数变化

读取或保存数据

读取数据

pandas可以从外部获取数据,构建数据对象,例如xlsx后缀的ececl文件,csv文件,txt文本等

下面以txt文件举例:

先创建txt文本

读取txt文本数据

#读取txt文件
import pandas as pd

# df = pd.read_csv(‘data1.txt‘,sep=‘:‘)   #默认sep=‘,‘以什么分割数据,默认逗号
# print("data01.csv文件的原始数据==========================")
# print(df)

df = pd.read_csv(‘data1.txt‘,sep=‘:‘,header=None) #默认sep=‘,‘,header:去除表头,添加默认下标
print("data01.csv文件的原始数据==========================")
print(df)
#读取excel文件# df=pd.read_excel(‘data2.xlsx‘)# print(df)

  

     0   1   2
0  张伊曼  27  90
1  张巧玲  27  90
2  张诗诗  27  90
3  张思思  27  90

  

保存数据

df.to_csv(‘data1.csv‘) #保存为csv文件df.to_excel(‘data2.xlsx‘) #保存为xlsx

  

缺省值和异常值处理

缺省值

什么是缺省值

null/None/NaN

null经常出现在数据库中

None是python中的缺失值,类型是NoneType

NaN也是python中的缺失值,意思是不是一个数字,类型是float

在pandas和Numpy中会将None替换为NaN,而导入数据库中的时候则需要把NaN替换成None

  

缺失值处理方法
pandas中缺省值NaN的4种处理方法:1 isnull 2 notnull 3 dropna 4 fillna
     方法             说明
dropna         根据标签中的缺失值进行过滤,删除缺失值
fillna         对缺失值进行填充
isnull         返回一个布尔值对象 ,判断 哪些值是缺失值
notnull        isnull的否定式

  

判断缺省值

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(12).reshape(3,4),index=[‘a‘,‘b‘,‘c‘],columns=[‘A‘, ‘B‘, ‘C‘, ‘D‘])
#
print(df)

#判断全部值的缺省值
d1=df.isnull()
print(d1)

#在某行中判断缺省值
d2=df[0:1].isnull()
print(d2)

#在某列中# ‘A‘列判断缺省值
d3=df[‘A‘].isnull()
print(d3)

 

   A  B   C   D
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
       A      B      C      D
a  False  False  False  False
b  False  False  False  False
c  False  False  False  False
       A      B      C      D
a  False  False  False  False
a    False
b    False
c    False
Name: A, dtype: bool

  

删除缺省值

常用参数解释:
how:‘all‘,删除全为空值的行或列
inplace=True:覆盖之前的数据
axis=0:选择行或列
import numpy as np
import pandas as pd
dict0 = {
    ‘语文‘: [90, 80, 60],
    ‘数学‘: [99, 70, 89],
    ‘外语‘: [98, 10, 75],
    ‘物理‘: 90
}
df0 = pd.DataFrame(dict0)
#
df0[‘数学‘][1] = np.nan
#
print("df0原数据===============================")
print(df0)

print("df0.dropna()===============================")
print(df0.dropna())       #默认删除有缺省值所在的行

print("df0.dropna(axis=1)===============================")
print(df0.dropna(axis=1)) #默认删除有缺省值所在的列

print("df0.dropna(how=‘all‘,axis=1)===============================")
df0.ix[1] = np.nan
print(df0.dropna(how=‘all‘)) #当所有元素是缺省值的时候 才删除

print("df0.dropna(how=‘any‘,axis=1)===============================")
df0[‘外语‘][0] = np.nan
print(df0.dropna(how=‘any‘)) #当所有元素有一个是缺省值的时候 才删除

  

   语文    数学  外语  物理
0  90  99.0  98  90
1  80   NaN  10  90
2  60  89.0  75  90
df0.dropna()===============================
   语文    数学  外语  物理
0  90  99.0  98  90
2  60  89.0  75  90
df0.dropna(axis=1)===============================
   语文  外语  物理
0  90  98  90
1  80  10  90
2  60  75  90
df0.dropna(how=‘all‘,axis=1)===============================
     语文    数学    外语    物理
0  90.0  99.0  98.0  90.0
2  60.0  89.0  75.0  90.0

填充缺失值

注意:在这里inplace会修改原始数据,并自动保存

import numpy as np
import pandas as pd
dict0 = {
    ‘语文‘: [90, 80, 60],
    ‘数学‘: [99, 70, 89],
    ‘外语‘: [98, 10, 75],
    ‘物理‘:None
}
df0 = pd.DataFrame(dict0)
print(‘df0的原始数据=================================‘)
print(df0)

print(‘将所有的缺省的数据填充为1=================================‘)
print(df0.fillna(1))#参数为填入值,可以为单个值,也可以为列表

print(‘将找到的缺省数据填充为平均值=================================‘)
print(df0.fillna(df0[‘语文‘].mean()))#结合numpy的数学运算函数,求平均值
print(df0[‘物理‘].fillna(df0[‘语文‘].mean()))#结合numpy的数学运算函数,求平均值,当然pandas自己也有自己的方法

  

df0的原始数据=================================
   语文  数学  外语    物理
0  90  99  98  None
1  80  70  10  None
2  60  89  75  None
将所有的缺省的数据填充为1=================================
   语文  数学  外语  物理
0  90  99  98   1
1  80  70  10   1
2  60  89  75   1
将找到的缺省数据填充为平均值=================================
   语文  数学  外语         物理
0  90  99  98  76.666667
1  80  70  10  76.666667
2  60  89  75  76.666667
0    76.666667

异常值处理

异常值就是与你想要获取的值偏差太大或者不是想要的值

先用条件判断筛选出来

再进行怎样的处理看需要

数据去重

unique方法用于获取Series或DataFrame某列中的唯一值数组(去重数据后的数组)
value_counts方法用于计算一个Series或DataFrame某列中各值的出现频率
isin方法用于判断矢量化集合的成员资格,是否在里面,可用于选取Series中或DataFrame列中数据的子集

这里演示的是Series类型数据

import numpy as np
import pandas as pd
s1 = pd.Series([‘a‘, ‘b‘, ‘c‘, ‘b‘, ‘a‘])
print("s1的原始数据==============================")
print(s1)
#
print("数据去重方法:s1.unique()==============================")
print(s1.unique())   #注意:s1.unique()返回的类型也是Series
#
print("单个值出现的个数:s1.value_counts()[‘a‘]==============================")
print(s1.value_counts()[‘a‘])
#
print("值是否存在的方法:s1.isin([‘a‘, ‘b‘])==============================")
print(s1.isin([‘a‘, ‘b‘]))

  

s1的原始数据==============================
0    a
1    b
2    c
3    b
4    a
dtype: object
数据去重方法:s1.unique()==============================
[‘a‘ ‘b‘ ‘c‘]
单个值出现的个数:s1.value_counts()[‘a‘]==============================
2
值是否存在的方法:s1.isin([‘a‘, ‘b‘])==============================
0     True
1     True
2    False
3     True
4     True
dtype: bool

  

原文地址:https://www.cnblogs.com/-wenli/p/10274932.html

时间: 2024-12-23 09:38:24

pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)的相关文章

pandas5、常用数学统计方法

原文地址:https://www.cnblogs.com/yunshangyue71/p/11535334.html

Android 学习笔记之如何使用SQLite数据库来保存数据...

PS:最近一阵子都在为考试复习...坑爹的计算机网络,复习了3天,最后该不会的还是不会...明天还考英语...真蛋疼... 学习内容: 1.使用SQLite数据库来保存数据... SQLite:   SQLite一个轻量级的数据库,数据库这东西就是为了保存大量数据而存在的一个工具,SQLite支持SQL语言,其实和Mysql差不多,语句基本都是一样的,增删改查也非常的方便...SQLite独立性非常的好,使用SQLite不需要安装...不依赖与任何的引擎就可以独立的去执行...感觉这一点还是非常

Pandas学习笔记,字符串方法(string method)

一般语法格式Series.str.method().具体方法见http://pandas.pydata.org/pandas-docs/stable/api.html#string-handling 例如 Series.str.capitalize() 作用:Convert strings in the Series/Index to be capitalized.

numpy 中的nan和常用的统计方法

原文地址:https://www.cnblogs.com/cgy1995/p/9903279.html

pandas 常用统计方法

统计方法 pandas 对象有一些统计方法.它们大部分都属于约简和汇总统计,用于从 Series 中提取单个值,或从 DataFrame 的行或列中提取一个 Series. 比如 DataFrame.mean(axis=0,skipna=True) 方法,当数据集中存在 NA 值时,这些值会被简单跳过,除非整个切片(行或列)全是 NA,如果不想这样,则可以通过 skipna=False 来禁用此功能: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)

继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小一部分): 1. 一堆的setter/getter方法,没有c#中的property属性概念 2. 方法的参数值,不能设置缺省值 3. 不定个数参数的写法太单一 ... 然后java的拥护者讲出一堆大道理,说这样设计是如何如何有道理,各种洗脑,时间长了,也就被迫习惯了.要不是遇到scala,我还真就

Deep Learning(深度学习)之(三)Deep Learning的常用模型或者方法

九.Deep Learning的常用模型或者方法 9.1.AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重.自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种尽可能复现输入信号的神经网络.为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素

机器学习之深度学习常用的模型和方法

Deep Learning的常用模型或者方法 AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重.自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种尽可能复现输入信号的神经网络.为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA

Pandas学习之常用函数详解

本文和大家分享的主要是Pandas库常用函数相关内容,一起来看看吧,希望对大家学习Pandas有所帮助. 1. DataFrame 处理缺失值 pandas.DataFrame.dropna df2.dropna(axis=0, how='any', subset=[u'ToC'], inplace=True) 把在ToC列有缺失值的行去掉 2. 根据某维度计算重复的行 pandas.DataFrame.duplicated print df.duplicated(['name']).value