• pandas--apply/applymap/map


    import pandas as pd
    df=pd.DataFrame({'A':[1,2,3],"B":[11,22,33]})
    df['C']=df['A'].apply(lambda x : x+3)#apply运用于series的每个元素,对series运用apply就是对series的每一个元素进行处理
    df2=df.applymap(lambda x : x+7)#applymap应用于dataframe中的每个元素
    df3=df.apply(sum,axis=1)#对dataframe运用apply函数,是以行或者是列为最小单元的
    df4=df.apply(sum,axis=0)
    print(df['A'].map(lambda x: x+6))#map可以对dataframe中的某一行中的每个元素进行操作
    print(df2)
    print(df3)
    print(df4)
    #map函数也可以进行映射
    ddf=pd.DataFrame({'name':['shun1','shun2'],"性别":['','']})#map函数通过字典进行映射
    ddf['性别']=ddf['性别'].map({'':'man','':'woman'})
    print(ddf)
    
    #map函数也可以通过函数进行映射
    def replace_function(x):
    new_x="man" if x=="" else "woman"
    return new_x
    ddf['性别']=ddf['性别'].map(replace_function)
    print(ddf)
    
     
    
     map函数的使用
    
    def f(x):
    return x*x
    spam=[1,2,3,4]
    r=list(map(f,spam))
    print(r)
    rr=list(map(str,spam))
    print(rr)
    import pandas as pd
    df1 = pd.DataFrame({"lot no":["aw12_A1",'aw13_a2','aw15_a2'],'date':[1,2,3]})
    list=['aw12','aw13']
    def check(x,list1):
        for i in list1:
            if i in x:
                return x
    #运用apply函数,可以使用带多个参数的函数
    #对series中的每个元素运用这个参数,对该参数运用之后返回一个值,函数里面的值
    lotlist = df1['lot no'].apply(check,args=(list,)).dropna().tolist()
    print(df1[df1['lot no'].isin(lotlist)]['date'])

    详情:https://zhuanlan.zhihu.com/p/100064394

  • 相关阅读:
    机器学习-决策树
    第八章- 假设检验
    第七章-参数估计
    第六章-总体与样本
    第五章-大数定律&中心极限定理
    第三,四章-多维随机变量及其分布
    第二章-随机变量分布
    第一章, 随机事件
    第六章-二次型
    第五章-矩阵的特征值和特征向量
  • 原文地址:https://www.cnblogs.com/shunguo/p/14477018.html
Copyright © 2020-2023  润新知