pandas计算含缺失值中列平均值_机器学习 Pandas 02:基础 前12题 ( 带答案、注释 )...

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的值有三个。

更多《机器学习》,关注专栏 ♬ ♬注:因为专栏不止我一位作者!

加油!♥

你可能感兴趣的:(pandas计算含缺失值中列平均值_机器学习 Pandas 02:基础 前12题 ( 带答案、注释 )...)