• python—dataframe用法


    #行处理
    #df.iloc[1] 行索引号——获取行
    #df.iloc[0,1] 行列索引号——获取一个元素
    #df.iloc[[0,1]] 双括号默认都是行索引号——获取n行
    #df.iloc[0:2,1:3] 行列索引号——获取区域元素
    #df.loc["A"] 行名称——获取行
    #df.loc["A","c1"] 行列名称——获取一个元素
    #df.loc[["A","B"]] 双括号默认都是行名称号——获取n行
    #df.loc["A":"B","c1":"c2"] 行列名称——获取区域元素
    #列处理
    #df["c2"] 列名称——获取列
    #df[["c1","c2"] 列名称——获取n列

    #修改某一值
    #df.iloc[0,1] = 2
    #df.loc["A","c1"] =2

    #修改某一行信息 map与apply 当apply中axis=0时表示行
    #df.loc["A"]=df.loc["A"].map(lambda x:x*2) -- A行信息数*2
    #df.iloc[1]=df.iloc[1].map(lambda x:x*2) -- 索引号1,行信息数*2
    #df.loc['A'] = df.apply(lambda x: x['B'] + 2 * x['C'], axis=0)

    #修改某一列信息 map与apply 当apply中axis=1时表示列
    #df["c1"]=df["c1"].map(lambda x:x*2) -- c1列信息数*2
    #df['c3'] = df.apply(lambda x: x['c1'] + 2 * x['c2'], axis=1)

    #map、apply,mapapply比较
    #apply对DataFrame的数据进行按行或按列操作,axis=0时表示行,axis=1时表示列,可添加min与max
    #apply运用到Series中,执行的是对每个元素的运算
    #applymap自动对DataFrame每一个元素进行处理,不能添加统计函数比如min与max
    #map 是对 行、列,series 等 进行每个元素的单独操作,不能添加统计函数比如min与max

    #某列值为**显示此列
    #df[df['c1']==9] -- 列c1值为9的行

    import numpy as np
    import pandas as pd
    a=np.random.randint(5,10,size=(5,5))
    df = pd.DataFrame(a,index=["A","B","C","D","E"],columns=['c1', 'c2', 'c3', 'c4', 'c5'])
    #print(type(df))
    print(df)
    '''
    #iloc 按照索引号切片取信息左闭右开
    df1=df.iloc[0:2,1:3]
    print(df1)
    #loc 按照行列名称取信息
    df2=df.loc["A":"B","c2":"c3"]
    print(df2)

    #列索引
    print(df['c2'])

    # 返回前n行
    print(df.head(2))
    # 返回后n行
    print(df.tail(2))

    # 按照行列名称取信息,n个注意用【 】扩起
    df3 = df[["c2","c3"]]
    print(df3)

    #修改某一数据
    df.iloc[1,2]="apple"
    print(df)



    #修改列数据 使用map方法,其中lambda函数中x代表当前的列
    #df['c2'] = df['c2'].map(lambda x: x**2)
    #print(df)
    #修改行数据
    df.iloc[1]=df.iloc[1].map(lambda x:x*2)

    #修改多列数据 apply方法 c3=c1+2*c2
    df['c3'] = df.apply(lambda x: x['c1'] + 2 * x['c2'], axis=1)

    #排序
    print(df['c2'].sort_values(ascending=False))

    #apply使用统计函数
    df1=df.apply(lambda x: x.max()-x.min())
    #print(df)

    #增加列数据
    df["c6"]=[1,2,3,4,5]
    print(df)

    #某列数值等于**显示此列
    print(df[df['c1']==9])
    '''



  • 相关阅读:
    Bzoj3998 [TJOI2015]弦论
    Bzoj3669 [Noi2014]魔法森林
    Bzoj2157 旅游
    Bzoj3282 Tree
    POJ1743 Musical Theme
    CodeVs1515 跳
    Bzoj1013 [JSOI2008]球形空间产生器sphere
    Bzoj1007 [HNOI2008]水平可见直线
    洛谷P3120 [USACO15FEB]Cow Hopscotch
    洛谷P3112 [USACO14DEC]后卫马克Guard Mark
  • 原文地址:https://www.cnblogs.com/wenchengqingfeng/p/13297176.html
Copyright © 2020-2023  润新知