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 -
-
-
-
-

浙公网安备 33010602011771号