pandas学习笔记(二)

函数

pandas的函数应用类似于python里面的map和filter还有reduce函数,这样做的事情是不需要你进行循环就可以把全部数据执行一次。

import pandas as  pd

a=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=["a","b","c"])

print(a)

f=lambda x:x.max()-x.min()

b=a.apply(f)

print(b)
   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9
a    6
b    6
c    6
dtype: int64

这样就计算出了每一列的最大值-最小值的情况了。当然你也可以自己定义一个函数,进行应用。

排序

排序 :使用索引排序是使用sort_index,使用值排序是使用sort_values(by='列名')
代码示例:

import pandas as  pd

a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])

print(a)

print("--------------")
total=a.sort_values(by='b')

print(total)
   a  b  c
0  1  2  3
1  4  8  5
2  7  6  9
--------------
   a  b  c
0  1  2  3
2  7  6  9
1  4  8  5

唯一值

取唯一值使用方法unique()

统计功能

pandas 可以轻易的进行一些求和和统计数量、最大值,最小值等功能,具体随便一搜都有,也可以求标准差等之类的
代码示例:求标准差

import pandas as  pd

a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])

print(a['b'].std())
3.0550504633038935

统计每个值出现的次数

import pandas as  pd

a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])

b=a["a"].value_counts()
print(b)
7    1
1    1
4    1

成员资格,判断数据是否在dataframe中

import pandas as  pd

a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])

c=a["b"].isin(['12','8'])

#加入数据在dataframe中,返回ture,否则返回False
print(c)
print("-----------")
print(a[c])
0    False
1     True
2    False
Name: b, dtype: bool
-----------
   a  b  c
1  4  8  5

这个有时候还是挺有用的

处理缺失数据

缺失数据为,数据为空,或者你在数据库取出的数据是null/None,之类的,但是你在做计算时,这些空值无法进行计算,所以需要处理
我一般使用方式为:

  • 填充空值(fillna)为-99或者其他,然后遇到这些数值再进行逻辑判断
  • 直接使用dropna进行删除.

tips:判断某一个值是否为空时我是这样搞的:

np.isnan(Value)
#假如为空就是True

层次化索引

层次化索引,我理解的是在须有某些分组时,使用会比较有效率,官方是这样解释的:让你以低维度的形式,来处理高维度的数据
上个demo:

import pandas as pd
import numpy as np
data=pd.Series(np.random.randn(10),index=[["a","a","a","b","b","b","c","c","d","d"],
[1,2,3,1,2,3,1,2,2,3]])

print(data)
print("--------")
print(data["a"])
a  1   -0.646652
   2    1.074914
   3   -0.164349
b  1    0.557621
   2   -1.079296
   3    0.193348
c  1    1.335906
   2    1.031765
d  2   -0.900637
   3   -1.271147
dtype: float64
--------
1   -0.646652
2    1.074914
3   -0.164349
dtype: float64

创建空Dataframe 循环添加数据

我们在使用python列表时经常创建一个list=[],然后循环append,使用Dataframe也可以这样进行操作。

data=pd.DataFrame(columns=["列名","列名","PM25","列名","列名"])
data=data.append('这里的数据为对象上面列的一行数据')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容