Pandas 面试题解析

一、 Pandas 面试题

Pandas 是一个用于数据操作和分析的 Python 库。在数据处理和数据分析领域中,它是非常流行的工具之一,被广泛用于处理结构化数据。

在 Pandas 面试中,经常涉及以下几个方面的问题:

1. Series 和 Dataframe 有什么区别?

Pandas 中的 Series 可以看作是一个带有标签的一维数组,可以保存不同的数据类型,每个元素都有一个唯一的标签。而 Dataframe 是二维数组,可以看成是多个 Series 拼接组成的表格,有行索引和列索引,可以亚索每一行和每一列。

 # 简单创建 Series 和 Dataframe
 import pandas as pd

 # 创建 Series
 s = pd.Series([1,2,3,4])
 print(s)

 # 创建 Dataframe
 df = pd.DataFrame({'a': [1,2,3,4], 'b': [5,6,7,8]})
 print(df)

2. 如何删除 Dataframe 中重复的行?

如果 Pandas 中的 Dataframe 包含重复的行,可以使用 drop_duplicates 方法删除,方法会返回一个新的 Dataframe。在调用时,可以指定列名,只有指定的列全都相同的行才会被删除。

 # 删除 Dataframe 中的重复行
 import pandas as pd

 df = pd.DataFrame({'A': [1,1,2,2,3,4], 'B': ['a', 'b', 'a', 'a', 'c', 'd']})
 df = df.drop_duplicates(['A'])
 print(df)

3. 如何对 Dataframe 进行合并操作?

在 Pandas 中,可以使用 concat 方法或 merge 方法对 Dataframe 进行合并操作。其中,concat 方法主要用于简单的合并操作。如果需要更加复杂的合并操作,则可以选择 merge 方法。

 # 使用 concat 合并 Dataframe
 import pandas as pd

 df1 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
 df2 = pd.DataFrame({'A': [4,5,6], 'B': [7,8,9]})
 df3 = pd.concat([df1, df2])
 print(df3)

 # 使用 merge 合并 Dataframe
 df4 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'key': ['a', 'b', 'c']})
 df5 = pd.DataFrame({'B': [7,8,9], 'C': [10,11,12], 'key': ['a', 'b', 'd']})
 df6 = pd.merge(df4, df5, on='key')
 print(df6)

二、 Pandas常见面试题

1. 如何删除一列或多列?

可以使用 drop 函数删除一列,需要指定列的名称以及 axis=1 参数。如果需要删除多列,则可以将列名放在一个 list 中传递给 drop 函数。

 # 删除一列或多列
 import pandas as pd

 df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
 df = df.drop(['B', 'C'], axis=1)
 print(df)

2. 如何选择 Dataframe 中的某些列?

可以使用 loc 或 iloc 函数选择某些列。如果只需要选择一列,则可以使用如下代码:

 # 选择 Dataframe 中的某些列
 import pandas as pd

 df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
 col = df['A']
 print(col)

如果需要选择多列,则可以使用 loc 或 iloc 函数。其中,loc 函数是基于名称进行选择,iloc 函数是基于索引进行选择。

 # 使用 loc 函数选择多列
 cols = df.loc[:, ['A', 'C']]
 print(cols)

 # 使用 iloc 函数选择多列
 cols = df.iloc[:, [0, 2]]
 print(cols)

3. 如何设置 Dataframe 中某些列的数值类型?

可以使用 astype 函数设置某些列的数值类型,函数会返回新的 Dataframe。可以将每个需要转换类型的列都单独转换,也可以使用一个字典将需要转换类型的列名称和对应的数值类型一起传递给 astype 函数。

 # 设置 Dataframe 中某些列的数值类型
 import pandas as pd

 df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4.1', '5.2', '6.3']})
 df['A'] = df['A'].astype(int)
 df['B'] = df['B'].astype(float)
 print(df)

 # 传递字典转换某些列的数值类型
 dtypes = {'A': int, 'B': float}
 df = df.astype(dtypes)
 print(df)

三、 Pandas多层标题选取

1. 如何选取多层标题中的某个子标题?

可以使用 loc 函数选取多层标题中的某个子标题,需要指定每个层级的名称,可以使用 tuple 或列表进行指定,例如:

 # 选择多层标题中的子标题
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6]}
 df = pd.DataFrame(data)
 sub_df = df.loc[:, ('a', 'b')]
 print(sub_df)

2. 如何选取多层标题中的所有子标题?

可以使用 xs 函数选取多层标题中的所有子标题,需要指定每个层级的名称。如果有多个层级,可以使用 level 参数指定。

 # 选择多层标题中的所有子标题
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6]}
 df = pd.DataFrame(data)
 sub_df = df.xs('b', level=1, axis=1)
 print(sub_df)

3. 如何选取包含某个标题的所有子标题?

可以使用 filter 函数选取包含某个标题的所有子标题,需要指定要筛选的标题的名称。例如:

 # 选择包含某个标题的所有子标题
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6], ('b', 'd'): [7,8,9]}
 df = pd.DataFrame(data)
 sub_df = df.filter(like='a', axis=1)
 print(sub_df)

四、 总结

在面试中,Pandas 常常是重要的考点。本篇文章介绍了Pandas的常见面试题,包括 Series 和 Dataframe 的区别、删除重复行、合并 Dataframe、删除列、选择列、数据类型的设置、多层标题选取等。希望对大家在 Pandas 面试中有所帮助。

原创文章,作者:SVSB,如若转载,请注明出处:https://www.506064.com/n/148706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SVSBSVSB
上一篇 2024-11-03 15:17
下一篇 2024-11-03 15:17

相关推荐

  • Pandas下载whl指南

    本篇文章将从几个方面为大家详细解答如何下载Pandas的whl文件。 一、Pandas简介 Pandas是一个基于Python的软件库,主要用于数据分析、清洗和处理。在数据处理方面…

    编程 2025-04-28
  • 源码审计面试题用法介绍

    在进行源码审计面试时,可能会遇到各种类型的问题,本文将以实例为基础,从多个方面对源码审计面试题进行详细阐述。 一、SQL注入 SQL注入是常见的一种攻击方式,攻击者通过在输入的参数…

    编程 2025-04-27
  • 如何在Python中安装和使用Pandas

    本文将介绍如何安装和使用Python的Pandas库 一、Pandas库的介绍 Pandas是Python的一个数据分析库,提供了许多实用的数据结构和数据分析工具,可以帮助用户轻松…

    编程 2025-04-27
  • Mybatisplus面试题详解

    Mybatisplus是在Mybatis的基础上进行的封装,它为我们简化了开发操作,提供了自动生成常用SQL,自动分页,及其他一些常用操作的功能,大大提高了开发的效率。在本篇文章中…

    编程 2025-04-25
  • uniapp面试题解析

    一、uniapp简介 uniapp是一种基于vue.js框架的开源跨平台开发框架,可以让开发者使用vue的语法在多个平台上进行一次编译即可生成iOS、Android、Web和小程序…

    编程 2025-04-25
  • 深入解析pandas的drop_duplicates()函数

    在数据处理和清洗过程中,一个经常出现的问题是如何移除重复的数据项。pandas提供了一种方便易用的方式来完成这项任务——drop_duplicates()函数。本文将从多个方面深入…

    编程 2025-04-24
  • MySQL常见面试题

    一、基础知识 1、MySQL的优点和缺点 MySQL是一个开源的关系型数据库管理系统,拥有以下优点: (1)开源免费,可以节省成本; (2)支持多种操作系统; (3)易于使用和管理…

    编程 2025-04-24
  • 详解pandas fillna 指定列

    一、fillna的基础用法 fillna是pandas中一个常用的函数,它用于填充数据框或序列中的空值。我们先来看一个简单的案例: import pandas as pd impo…

    编程 2025-04-24
  • Pandas apply函数详解

    Pandas是Python的一个开源数据分析库,专门用于数据操作和分析。其中apply()函数是Pandas中常用的数据操作函数之一,本文将从多个方面对这个函数进行详细的阐述。 一…

    编程 2025-04-24
  • Pandas分组统计

    Pandas是一个强大的数据分析工具,可以用来处理大量的数据,包括分组,汇总和统计等。当面对大量的数据时,经常需要按照特定的标准对数据进行分组,然后对每个组进行统计分析,这时候就需…

    编程 2025-04-23

发表回复

登录后才能评论