JavaScript
pandas的基本功能(一)
第16天pandas的基本功能(一)灵活的二进制操作
体现在2个方面
支持一维和二维之间的广播
支持缺失值数据处理
四则运算支持广播
+add - sub *mul /div
divmod()分区和模运算(返回商和余数2个结果)
案例:a,b=divmod(一维矩阵)
空值处理
矩阵中空值用NaN代替
NaN+值=NaN
np(numpy).nan表示空值
填充空值: fillna(value=值)
np.nan == np.nan 结果为False
如果a矩阵和b矩阵中有空值 那么 a == b 结果:False
相同:a.equal(b )结果为:True.带空的矩阵比较推荐使用equal
组合
从df2中把df1的数据不全
df1.combine_first(df2)
连接
连接二维矩阵
df1.concat(df2,axis=0/1)
连接一维矩阵
pd.concat([df1,df2])
一维二维通用
df1.append(df2)
统计
所有统计函数都支持行或列~~~
sum(0/1) mean(0/1)
统计函数
功能 描述 count非NA观测数量 sum价值总和 mean价值的平均值 mad平均绝对偏差 median算术值的中值 min最低限度 max最大值 mode模式 abs绝对值 prod价值的产物 std贝塞尔校正的样本标准偏差 var无偏差 sem平均值的标准误差 skew样本偏斜(第3时刻) kurt样本峰度(第4个时刻) quantile样本分位数(值为%) cumsum累计金额 cumprod累积产品 cummax累积最大值 cummin累积最小值
统计函数,统计的时候自动跳过空值
len(数组)获取行数,包括Nan所在的行~~~count(不包括)
include
#可以指定摘要统计的东西
矩阵.describe(include=['object'])
矩阵.describe(include=['number'])
最大最小索引
最大数和最小数对应的索引位置
最大 矩阵.idxmax(axis=0/1)
最小 矩阵 .idxmin(axis=0/1)
最常出现值模式
a.value_counts() 统计一维数组中每个元素出现的次数
a.mode()统计数组中出现次数最多的值
分段/面元
cut和qcut
共同点
都可以分为好多份 pd.cut/qcut(df,4) qcut 是对等的 cut 是随机的
不同点
pd.cut(df,[数组]) qcut不支持
语法 pd.cut(df,[切点列表],right=True/False)
示列
#分2组 大于18的为成年,小于18的为未成年,统计个数
a = pd.Series([4,5,5,2,3,1,8,9,3,15,6,45,56,1,56,2,20,4,5,2,1,8,18,1,82,20,25,20,20,12,13,14])
b = pd.cut(a,[0,18,100],labels=['未成年','成年'],right=False)
b.value_counts()
为矩阵添加处理函数/支持多个函数
链式写法
(df.pipe(函数名,参数).pipe(函数名,参数).......)
apply
df.apply(函数名,axis=0/1) 为当前行或列添加处理函数
示列
#12.判断年龄是否成年: 18岁以上成年 #成年和未成年获救比例
"""
1.判断是否成年
2.
"""
def age_old(b):
c = b['Age']
if c > 18:
return '成年'
elif c < 18:
return '未成年'
else:
return '空值'
#创建新列
df['chegnnian'] = df.apply(age_old,axis=1)
#设置全家的汉子显示
plt.rcParams['font.size'] = 15
h_j = df.groupby(by=['Survived','chegnnian']).size()
plt.pie(h_j,labels=['成年未获救','未成年未获救','空值未获救','成年获救','未成年获救','空值获救'],shadow=True,autopct='%1.1f%%')
plt.axis('equal') #设置圆的形状 正圆
plt.show()
map
df.applymap == df.map()
示列
#10. 以下肉类数据源,food都转换为小写,添加一个动物列,而且字符串都是小写
data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon','Pastrami', 'corned beef', 'Bacon','pastrami', 'honey ham', 'nova lox'],
'price': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
data['food'].str.lower()
#新列: 动物列
animal = { 'bacon': 'Pig', 'pulled pork': 'pIg', 'pastrami': 'cOw', 'corned beef': 'Co', 'honey Ham': 'pig', 'nova lox': 'Salmon' }
x = data['food'].map(animal)
data['animal'] = x
data
体现在2个方面
支持一维和二维之间的广播
支持缺失值数据处理
四则运算支持广播
+add - sub *mul /div
divmod()分区和模运算(返回商和余数2个结果)
案例:a,b=divmod(一维矩阵)
空值处理
矩阵中空值用NaN代替
NaN+值=NaN
np(numpy).nan表示空值
填充空值: fillna(value=值)
np.nan == np.nan 结果为False
如果a矩阵和b矩阵中有空值 那么 a == b 结果:False
相同:a.equal(b )结果为:True.带空的矩阵比较推荐使用equal
组合
从df2中把df1的数据不全
df1.combine_first(df2)
连接
连接二维矩阵
df1.concat(df2,axis=0/1)
连接一维矩阵
pd.concat([df1,df2])
一维二维通用
df1.append(df2)
统计
所有统计函数都支持行或列~~~
sum(0/1) mean(0/1)
统计函数
功能 描述 count非NA观测数量 sum价值总和 mean价值的平均值 mad平均绝对偏差 median算术值的中值 min最低限度 max最大值 mode模式 abs绝对值 prod价值的产物 std贝塞尔校正的样本标准偏差 var无偏差 sem平均值的标准误差 skew样本偏斜(第3时刻) kurt样本峰度(第4个时刻) quantile样本分位数(值为%) cumsum累计金额 cumprod累积产品 cummax累积最大值 cummin累积最小值
统计函数,统计的时候自动跳过空值
len(数组)获取行数,包括Nan所在的行~~~count(不包括)
include
#可以指定摘要统计的东西
矩阵.describe(include=['object'])
矩阵.describe(include=['number'])
最大最小索引
最大数和最小数对应的索引位置
最大 矩阵.idxmax(axis=0/1)
最小 矩阵 .idxmin(axis=0/1)
最常出现值模式
a.value_counts() 统计一维数组中每个元素出现的次数
a.mode()统计数组中出现次数最多的值
分段/面元
cut和qcut
共同点
都可以分为好多份 pd.cut/qcut(df,4) qcut 是对等的 cut 是随机的
不同点
pd.cut(df,[数组]) qcut不支持
语法 pd.cut(df,[切点列表],right=True/False)
示列
#分2组 大于18的为成年,小于18的为未成年,统计个数
a = pd.Series([4,5,5,2,3,1,8,9,3,15,6,45,56,1,56,2,20,4,5,2,1,8,18,1,82,20,25,20,20,12,13,14])
b = pd.cut(a,[0,18,100],labels=['未成年','成年'],right=False)
b.value_counts()
为矩阵添加处理函数/支持多个函数
链式写法
(df.pipe(函数名,参数).pipe(函数名,参数).......)
apply
df.apply(函数名,axis=0/1) 为当前行或列添加处理函数
示列
#12.判断年龄是否成年: 18岁以上成年 #成年和未成年获救比例
"""
1.判断是否成年
2.
"""
def age_old(b):
c = b['Age']
if c > 18:
return '成年'
elif c < 18:
return '未成年'
else:
return '空值'
#创建新列
df['chegnnian'] = df.apply(age_old,axis=1)
#设置全家的汉子显示
plt.rcParams['font.size'] = 15
h_j = df.groupby(by=['Survived','chegnnian']).size()
plt.pie(h_j,labels=['成年未获救','未成年未获救','空值未获救','成年获救','未成年获救','空值获救'],shadow=True,autopct='%1.1f%%')
plt.axis('equal') #设置圆的形状 正圆
plt.show()
map
df.applymap == df.map()
示列
#10. 以下肉类数据源,food都转换为小写,添加一个动物列,而且字符串都是小写
data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon','Pastrami', 'corned beef', 'Bacon','pastrami', 'honey ham', 'nova lox'],
'price': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
data['food'].str.lower()
#新列: 动物列
animal = { 'bacon': 'Pig', 'pulled pork': 'pIg', 'pastrami': 'cOw', 'corned beef': 'Co', 'honey Ham': 'pig', 'nova lox': 'Salmon' }
x = data['food'].map(animal)
data['animal'] = x
data
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~