一. apply函数
作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值。函数既可以使用默认的,也可以自定义。注意:在第二个输出中应用 head() 函数,因为它包含了很多行。
#创建一个新函数
def num_missing(x):
return sum(x.isnull())
#应用每一列
print "Missing values per column:"
print data.apply(num_missing, axis=0) #axis=0 defines that function is to be applied on each column
#应用每一行
print "\nMissing values per row:"
print data.apply(num_missing, axis=1).head() #axis=1 defines that function is to be applied on each row
二. loc函数
作用:选择属性子集
subSalesDf=salesDf.loc[0:4,'购药时间':'销售数量']
三. rename函数
作用:列重命名
colNameDict = {'购药时间':'销售时间'} #将‘购药时间’改为‘销售时间’
salesDf.rename(columns = colNameDict,inplace=True)
四. dropna函数
作用:删除缺失值,how='any'意为在给定的任何一列中有缺失值就删除
salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any') #删除列(销售时间,社保卡号)中为空的行
五. pd.to_datetime函数
作用:字符串类型的数据转换成日期格式。传入的格式是原始数据的日期格式——format='%Y-%m-%d'固定写法:Y表示年、m表示月、d表示日。
salesDf.loc[:,'销售时间']=pd.to_datetime(salesDf.loc[:,'销售时间'],
format='%Y-%m-%d',
errors='coerce')
errors='coerce': 如果原始数据不符合日期的格式,转换后的值为空值NaT。所以转换之后我们还要运行一次删除空值的代码,因为不符合格式的日期被转变为了空值需要删除。
salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any')
六. pd.sort_values
作用:对数据进行排序,by表示按那几列进行排序,ascending=True 表示升序排列,ascending=False表示降序排列
salesDf=salesDf.sort_values(by='销售时间', #按销售日期进行升序排列
ascending=True)
七. reset_index函数
作用:生成从0到N按顺序的索引值
salesDf=salesDf.reset_index(drop=True)
八. describe函数
作用:查看数据框中所有数据每列的描述统计信息:(count:总数,mean:平均数,std:标准差,min:最小值,25%:下四分位数,50%:中位数,75%:上四分位数,max:最大值)
salesDf.describe()
九. 删除异常值
作用:假设最小值出现了小于0的情况,分析应该是记录过程中出现错误所致。
第一步:设置查询条件,这一步返回True和false
querySer=salesDf.loc[:,'销售数量']>0
第二步:应用查询条件
salesDf=salesDf.loc[querySer,:]
十. drop_duplicates函数
作用:将重复的数据删除,同一个人发生的所有消费算作一次消费,根据列名(销售时间,社区卡号),如果这两个列值同时相同,只保留1条
kpi1_Df=salesDf.drop_duplicates(
subset=['销售时间', '社保卡号']
)
十一. groupby
作用:根据某一列分组
gb=groupDf.groupby(groupDf.index.month)
对分组后的数据应用函数
mounthDf=gb.sum()
标签:数据分析,loc,函数,python,销售,时间,salesDf,True