设为首页 加入收藏

TOP

python-数据描述与分析2(利用Pandas处理数据 缺失值的处理 数据库的使用)(一)
2023-07-23 13:43:56 】 浏览:38
Tags:python- 利用 Pandas

2.利用Pandas处理数据
2.1 汇总计算
当我们知道如何加载数据后,接下来就是如何处理数据,虽然之前的赋值计算也是一种计算,但是如果Pandas的作用就停留在此,那我们也许只是看到了它的冰山一角,它首先比较吸引人的作用是汇总计算

(1)基本的数学统计计算
这里的基本计算指的是sum、mean等操作,主要是基于Series(也可能是来自DataFrame)进行统计计算。举例如下:

#统计计算 sum mean等
import numpy as np
import pandas as pd
df=pd.DataFrame(np.arange(16).reshape((4,4)),columns=["aa","bb","cc","dd"],index = ["a","b","c","d"])
df
#output
    aa    bb    cc    dd
a    0    1    2    3
b    4    5    6    7
c    8    9    10    11
d    12    13    14    15
df_data = df.reindex(["a","b","c","d","e"])
df_data
#output
    aa    bb    cc    dd
a    0.0    1.0    2.0    3.0
b    4.0    5.0    6.0    7.0
c    8.0    9.0    10.0    11.0
d    12.0    13.0    14.0    15.0
e    NaN    NaN    NaN    NaN
df_data.sum() #默认是通过列进行求和,即axis=0;默认NaN值也是忽略的
#output
aa    24.0
bb    28.0
cc    32.0
dd    36.0
dtype: float64
df_data.sum(axis=1) #默认是通过列进行求和
#output
a     6.0
b    22.0
c    38.0
d    54.0
e     0.0
dtype: float64
df_data.mean(axis=0,skipna=False)
#output
aa   NaN
bb   NaN
cc   NaN
dd   NaN
dtype: float64
## idxmax  idxmin 最大值,最小值的索引
print(df.idxmax())
print("________________________")
print(df.idxmin())
#output
aa    d
bb    d
cc    d
dd    d
dtype: object
________________________
aa    a
bb    a
cc    a
dd    a
dtype: object
##进行累计 cumsum
print(df.cumsum())
#output
aa  bb  cc  dd
a   0   1   2   3
b   4   6   8  10
c  12  15  18  21
d  24  28  32  36
#对于刚才提到的最大多数描述性统计可以使用describe
#对于这些统计量的含义可以查找“help”得到,此处不再赘述
df.describe()
#output
    aa    bb    cc    dd
count    4.000000    4.000000    4.000000    4.000000
mean    6.000000    7.000000    8.000000    9.000000
std    5.163978    5.163978    5.163978    5.163978
min    0.000000    1.000000    2.000000    3.000000
25%    3.000000    4.000000    5.000000    6.000000
50%    6.000000    7.000000    8.000000    9.000000
75%    9.000000    10.000000    11.000000    12.000000
max    12.000000    13.000000    14.000000    15.000000
#(2)唯一值、值的计数。成员资格的设定  采用几行代码,一个Output 进行演示
#是否是唯一值
obj = pd.Series(["a","a","b","b","b","c","c"])
print (obj)
print (obj.unique())
#output
0    a
1    a
2    b
3    b
4    b
5    c
6    c
dtype: object
['a' 'b' 'c']
#value_counts 是python 针对Series进行的顶级操作
print (pd.value_counts(obj.values,sort=False))
#output
a    2
b    3
c    2
dtype: int64
mark = obj.isin(["a"]) #是否存在a
print (mark)
#output
0     True
1     True
2    False
3    False
4    False
5    False
6    False
dtype: bool
obj[mark] #根据判定条件进行数据获取
#output
0    a
1    a
dtype: object

另外,实际应用中不只是这些统计函数在发挥作用,还有很多统计函数,比如计算数值之间的百分比(pct_change),或者是相关数据的系数与协方差等,这里就不讨论了,需要时可查看帮助文档来解决。

2.2 缺失值的处理
(1)缺失值的概念
缺失值是在数据处理中在所难免的问题,pandas对缺失值的处理目的是简化对缺失值处理的工作。缺失值在pandas中使用的是浮点数(numpy.nan:Not a Number),具体代码如下:

import numpy as np
import pandas as pd
data = pd.Series([11,22,33,np.nan,55])   #定义NaN 值通过numpy.nan
data
#output
0    11.0
1    22.0
2    33.0
3     NaN
4    55.0
dtype: float64
data.isnull()  #判定是否为空NaN
#output
0    False
1    False
2    False
3     True
4    False
dtype: bool
#python中对于None 也认为是NaN
data[2]=None
data
#output
0    11.0
1    22.0
2     NaN
3     NaN
4    55.0
dtype: float64
#(2)过滤缺失值 对于缺失值的过滤主要通过dropna进行,如下所示:
data.dropna()  #过滤NaN值 #接着上面定义的data进行操作
#output
0    11.0
1    22.0
4    55.0
dtype: float64
#当然dropna太过暴力——他会过滤所有的NaN值,这样往往不是一般正常需要的处理结果
#我们通过dropna的属性进行限定
df = pd.DataFrame(np.arange(16).reshape((4,4)),columns=["aa","bb","cc","dd"],index=["
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇我使用pangu模块做了一个文本格式.. 下一篇Python学习: 网络请求模块 urlli..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目