2.利用Pandas处理数据2.1 汇总计算当我们知道如何加载数据后,接下来就是如何处理数据,虽然之前的赋值计算也是一种计算,但是如果Pandas的作用就停留在此,那我们也许只是看到了它的冰山一角,它首先比较吸引人的作用是汇总计算
(1)基本的数学统计计算这里的基本计算指的是sum、mean等操作,主要是基于Series(也可能是来自DataFrame)进行统计计算 。举例如下:
#统计计算 sum mean等import numpy as npimport pandas as pddf=pd.DataFrame(np.arange(16).reshape((4,4)),columns=["aa","bb","cc","dd"],index = ["a","b","c","d"])df#outputaabbccdda0123b4567c891011d12131415df_data = https://www.huyubaike.com/biancheng/df.reindex(["a","b","c","d","e"])df_data#outputaabbccdda0.01.02.03.0b4.05.06.07.0c8.09.010.011.0d12.013.014.015.0eNaNNaNNaNNaNdf_data.sum() #默认是通过列进行求和,即axis=0;默认NaN值也是忽略的#outputaa24.0bb28.0cc32.0dd36.0dtype: float64df_data.sum(axis=1) #默认是通过列进行求和#outputa6.0b22.0c38.0d54.0e0.0dtype: float64df_data.mean(axis=0,skipna=False)#outputaaNaNbbNaNccNaNddNaNdtype: float64## idxmaxidxmin 最大值,最小值的索引print(df.idxmax())print("________________________")print(df.idxmin())#outputaadbbdccdddddtype: object________________________aaabbaccaddadtype: object##进行累计 cumsumprint(df.cumsum())#outputaabbccdda0123b46810c12151821d24283236#对于刚才提到的最大多数描述性统计可以使用describe#对于这些统计量的含义可以查找“help”得到,此处不再赘述df.describe()#outputaabbccddcount4.0000004.0000004.0000004.000000mean6.0000007.0000008.0000009.000000std5.1639785.1639785.1639785.163978min0.0000001.0000002.0000003.00000025%3.0000004.0000005.0000006.00000050%6.0000007.0000008.0000009.00000075%9.00000010.00000011.00000012.000000max12.00000013.00000014.00000015.000000#(2)唯一值、值的计数 。成员资格的设定采用几行代码,一个Output 进行演示#是否是唯一值obj = pd.Series(["a","a","b","b","b","c","c"])print (obj)print (obj.unique())#output0a1a2b3b4b5c6cdtype: object['a' 'b' 'c']#value_counts 是python 针对Series进行的顶级操作print (pd.value_counts(obj.values,sort=False))#outputa2b3c2dtype: int64mark = obj.isin(["a"]) #是否存在aprint (mark)#output0True1True2False3False4False5False6Falsedtype: boolobj[mark] #根据判定条件进行数据获取#output0a1adtype: object另外,实际应用中不只是这些统计函数在发挥作用,还有很多统计函数,比如计算数值之间的百分比(pct_change),或者是相关数据的系数与协方差等,这里就不讨论了,需要时可查看帮助文档来解决 。
2.2 缺失值的处理(1)缺失值的概念缺失值是在数据处理中在所难免的问题,pandas对缺失值的处理目的是简化对缺失值处理的工作 。缺失值在pandas中使用的是浮点数(numpy.nan:Not a Number),具体代码如下:
import numpy as npimport pandas as pddata = https://www.huyubaike.com/biancheng/pd.Series([11,22,33,np.nan,55])#定义NaN 值通过numpy.nandata#output011.0122.0233.03NaN455.0dtype: float64data.isnull()#判定是否为空NaN#output0False1False2False3True4Falsedtype: bool#python中对于None 也认为是NaNdata[2]=Nonedata#output011.0122.02NaN3NaN455.0dtype: float64#(2)过滤缺失值 对于缺失值的过滤主要通过dropna进行,如下所示:data.dropna()#过滤NaN值 #接着上面定义的data进行操作#output011.0122.0455.0dtype: float64#当然dropna太过暴力——他会过滤所有的NaN值,这样往往不是一般正常需要的处理结果#我们通过dropna的属性进行限定df = pd.DataFrame(np.arange(16).reshape((4,4)),columns=["aa","bb","cc","dd"],index=["a","b","c","d"])df#outputaabbccdda0123b4567c891011d12131415#制造NaN值df.loc[:1,:]=np.nanprint (df)
经验总结扩展阅读
- 哪些国家开展了黄粉虫的研究利用
- 羊肉有味了怎么处理
- 脸上长痘痘怎么处理
- 粘鼠板粘住老鼠怎么处理
- 荣耀v50搭载什么处理器_荣耀v50处理器性能介绍
- 骁龙480相当于麒麟多少_高通骁龙480相当于什么处理器
- 公司重组员工如何处理
- 家里进水了怎么快速处理
- 关于动物的伤口怎么处理
- 净水机制水慢咋样处理