9. 表格中缺失值处理
import numpy as np
import pandas as pd
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
s1 = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102',periods=6))
df['F'] = s1
df
df1 = df.reindex(index=dates[0:4], columns=list(df.columns)+['E'])
df1.loc[dates[0]:dates[1],'E'] = 1
df1
# pandas的reindex对象,是数据符合新的索引来构造一个新的对象
# 赋值列"E",里面第一行、第二行赋值为1
# 在pandas中,用np.nan来代表缺失值,这些值默认不会参与运算。
# reindex()允许你修改、增加、删除指定轴上的索引,并返回一个数据副本。
df1.dropna(how='any')
# 剔除所有包含缺失值的行数据。
df1.fillna(value=5)
# 填充缺失值,将df1的缺失值都填充为5
pd.isnull(df1)
# 获取值是否为nan的布尔标记
10. 统计表格中的值
df
df.mean()
# 运算过程中,通常不包含缺失值。
# .mean()表示取每一列的平均值
df.mean(1)
# df.mean(1)取每一行的平均值
s = pd.Series([1,3,5,np.nan,6,8], index=dates).shift(4)
s
# 对于拥有不同维度的对象进行运算时需要对齐。除此之外,pandas会自动沿着指定维度计算。
# .shift(4)使得向下滑动4个单位,前面自动补齐NaN
df
df.sub(s, axis='index')
# .sub表示减去的意思,axis='index'表示每一个元素相减,减去NaN得到的还是NaN
11. 表格中Apply函数作用
import numpy as np
import pandas as pd
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
s1 = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102',periods=6))
df['F'] = s1
df
df.apply(np.cumsum)
# 通过apply()对函数作用
# numpy.cumsum(a, axis=None, dtype=None, out=None)
# axis=0,按照行累加。
# axis=1,按照列累加。
# axis不给定具体值,就把numpy数组当成一个一维数组。
# 这里用np.cumsum,没有用axis,是按列累加的。
df
# 使用df.apply(np.cumsum)后,df并没有变化
df.apply(lambda x:x.max()-x.min())
# lambda就是匿名函数,就是没有名字的函数, 简便实用。
# 举个例子
# 一般的函数是这样:
# def f(x):
# return x+1
# 这样使用 print f(4)
# 用lambda的话,写成这样:
# g = lambda x : x+1
# 这样使用 print g(4)
# 这里是求得每一列的最大值减去最小值
12. 标签数组频数统计
s = pd.Series(np.random.randint(0, 7, size=10))
s
# Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)
s.value_counts()
# 算每个不同值有多少重复值。
# 例如这里计算的是值为2的值有三个。
更多《机器学习》,关注专栏 ♬ ♬注:因为专栏不止我一位作者!
加油!♥