pandas 面试题挑战十

作者: 人工智能人话翻译官 | 来源:发表于2019-05-31 19:45 被阅读47次

    查询df中指定行与列的数据

    现有数据如下:

    df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')
    

    查询最贵的价格,解决方式如下:

    np.max(df.Price)
    

    输出

    61.9
    

    查询最贵价格的车,相关的'Manufacturer', 'Model', 'Type'信息
    解决方式如下:

    df.loc[df.Price == np.max(df.Price), ['Manufacturer', 'Model', 'Type']]
    #这种方式得到的是DataFrame
    

    输出


    image.png

    重点解读:
    df.Price == np.max(df.Price) 会返回一个布尔型的Series
    df.loc[df.Price == np.max(df.Price)]会根据布尔型的Series返回DF中的指定行,也就是Series中值为True的行。
    类似👇


    image.png

    也可以这样解决:

    df.loc[row[0], ['Manufacturer', 'Model', 'Type']]
    #这种方式得到的是一个Series
    
    image.png

    导入csv数据,并对列名进行更改

    现有数据如下:

    df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')
    

    把Type列改名为'CarType',并把名称中“.”替换成“_”
    解决方法如下:

    df.columns.values[2] = "CarType"
    #因为“type”在索引为2的列
    df.columns = df.columns.map(lambda x: x.replace('.', '_'))
    print(df.columns)
    

    输出

    Index(['Manufacturer', 'Model', 'CarType', 'Min_Price', 'Price', 'Max_Price',
           'MPG_city', 'MPG_highway', 'AirBags', 'DriveTrain', 'Cylinders',
           'EngineSize', 'Horsepower', 'RPM', 'Rev_per_mile', 'Man_trans_avail',
           'Fuel_tank_capacity', 'Passengers', 'Length', 'Wheelbase', 'Width',
           'Turn_circle', 'Rear_seat_room', 'Luggage_room', 'Weight', 'Origin',
           'Make'],
          dtype='object')
    

    查询df中的null值

    现有数据如下:

    df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')
    

    查询df中是否包含null值,只要有null值就返回True
    解决如下:

    df.isnull().values.any()
    

    输出

    True
    

    重点解读
    df.isnull() 得到👇这样的df


    image.png

    每个元素会根据是否为null返回True,False

    df.isnull().values会把df中的元素快速转换为array就是👇这个样子


    image.png

    最后使用array的any方法,只要有一个True,值就位真。

    统计df数据中每行包含的null值,并找出包含最多null值的行

    现有数据如下:

    df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')
    

    统计df数据中每行包含的null值,并找出包含最多null值的行

    n_missings_each_col = df.apply(lambda x: x.isnull().sum())
    n_missings_each_col.idxmax(), n_missings_each_col.max()
    

    输出

    ('Luggage.room', 19)
    

    相关文章

      网友评论

        本文标题:pandas 面试题挑战十

        本文链接:https://www.haomeiwen.com/subject/dbggtctx.html