1.apply 和applymap
import numpy as np
import pandas as pd
df1=pd.DataFrame(np.random.randn(5,4))
df
#绝对值
np.abs(df1)
#1.2通过apply将函数用到列或者行
#求一列的最大值
df1.apply(lambda x:x.max())
#求一行的最大值
df1.apply(lambda x:x.max(),axis=1)
#通过applymap将函数应用到每个数据
f2=lambda x:'%.2f'%x
df1.applymap(f2)
2.排序
#2.1索引排序
s1=pd.Series(np.arange(4),index=['d','b','c','a'])
s1
s1.sort_index() #默认升序
s1.sort_index(ascending=False) #降序
pd1=pd.DataFrame(np.arange(12).reshape(4,3),index=['b','d','c','a'],columns=['B','C','A'])
pd1
#按照行排序
pd1.sort_index(axis=1)
#2.2按照值排序
s1.sort_values() #按照值排序
s1['a']=np.nan
s1.sort_values()#当有缺失值 默认排在最后
s1.sort_values(ascending=False)#当有缺失值 降序也默认排在最后
pd1.sort_values(by='A') #按照列排序
pd1.sort_values(by=['A','B']) #按照多列排序,先按照A 列排
3.唯一值和成员属性
s1=pd.Series([2,6,8,9,8,3,6])
s1
s2=s1.unique() #返回一个数组 返回一个唯一值
s2
#计算值个数
s1.value_counts() #返回一个Series
#isin 判断值是否存在,返回布尔类型
s1.isin([8]) #判断8是否存在s1中
#判断多个值
s1.isin([8,2])
#DataFrame
data=pd.DataFrame({'a':[3,7,9,0],'b':[1,-1,4,8],'c':[0,6,-3,2]})
data
data.isin([2,4]) #判断2,4是否存在
#查看次数 c列
data.value_counts('c')
4.处理缺失数据
df3=pd.DataFrame([np.random.randn(3),[1,2,np.nan],[np.nan,4,np.nan],[1,2,3]])
df3
#1.判断是否存在缺失值 isnull()
df3.isnull()
#2.丢弃缺失的数据 dropna() 丢弃行
df3.dropna()
#2.丢弃列 dropna(axis=1)
df3.dropna(axis=1)
#3.填充缺失数据 fillna()
df3.fillna(-100)