Pandas面试30问与答精要

本文整理了30个常见的Pandas面试问题及答案,涵盖数据清洗、分析、操作等核心功能,包括Series与DataFrame区别、缺失值处理、数据筛选等实用技巧,适合数据科学学习者和面试准备者参考。

Python Pandas 面试30问与答精要

1. Python中的Pandas是什么?

Pandas是一个开源的Python库,具有强大内置方法,可高效清洗、分析和操作数据集。由Wes McKinney于2008年开发,该强大包可轻松与Python中其他数据科学模块融合。Pandas构建在NumPy库之上,即其数据结构Series和DataFrame是NumPy数组的升级版本。

2. 为什么DataFrame.shape没有括号?

在pandas中,shape是一个属性而非方法。df.shape输出一个包含DataFrame行数和列数的元组。

3. pandas中的索引是什么?

索引是一系列标签,可唯一标识DataFrame的每一行。索引可以是任何数据类型,如整数、字符串、哈希。

4. loc和iloc有什么区别?

loc和iloc方法都用于选择DataFrame的子集。实践中广泛用于基于条件过滤DataFrame。loc使用行和列的实际标签选择数据,而iloc方法使用行和列的整数索引提取数据。

5. 如何获取DataFrame中分类列的所有唯一值的计数?

该函数返回每个唯一序列或列的计数。

1
Series.value_counts()

6. 什么是Timedelta?

Timedelta表示持续时间,即两个日期或时间之间的差异,以天、小时、分钟和秒为单位测量。

7. append和concat方法有什么区别?

可使用concat方法沿行或列组合DataFrame,而append仅用于组合行。

8. 获取DataFrame中所有列统计摘要的pandas方法是什么?

df.describe()生成描述性统计信息,包括总结数据集分布的中心趋势、离散度和形状。

9. Series和DataFrame有什么区别?

DataFrame:pandas DataFrame呈表格格式,具有多行和多列,每列可以是不同数据类型。二维数据结构,像二维数组或带有行和列的表。 Series:Series是一维标记数组,可存储任何数据类型,但其所有值应为相同数据类型。Series数据结构更像DataFrame的单列。比DataFrame消耗更少内存,如整数、字符串、Python对象。

10. 如何访问pandas DataFrame的前6行和后7行?也称为查看数据。

pandas中的head()方法用于访问DataFrame的初始行,tail()方法用于访问最后行。head()的反方法是tail(),显示数据框对象的最后n(默认为5)行。 访问前6行:dataframe_name.head(6) 访问后7行:dataframe_name.tail(7)

11. 如何获取数据框中的最大和最小索引?

1
2
df['Column_name'].idxmax()
df['Column_name'].idxmin()

12. 如何描述数据框中项目或列之间的关系?

Python pandas提供工具和方法高效执行分析。

  • 相关性分析:相关性分析是一种统计技术,用于测量两个变量之间线性关系的强度和方向。 相关系数解释:

相关系数(通常用符号ρ或r表示)范围从-1到1: 相关系数为1表示完全正线性关系,意味着一个变量增加,另一个变量也成比例增加。 相关系数为-1表示完全负线性关系,意味着一个变量增加,另一个变量成比例减少。 相关系数为0表示变量之间无线性关系。值介于-1和1之间表示线性关系的强度和方向:

值越接近1表示正相关性越强。 值越接近-1表示负相关性越强。 值越接近0表示线性关系越弱或无线性关系。

13. 运行代码后如何获取行中项目的值?

使用value_counts()获取值。

14. info()方法在pandas中打印什么?如何将DataFrame导出到CSV文件?

info()- 该方法打印数据框的简明摘要,包括有关索引、数据类型、列、非空值和内存使用情况的信息。

清理和预处理数据后,下一步可能是将数据框导出到文件。to_csv()

1
iris_data.to_csv("cleaned_iris_data.csv")

15. 如何获取pandas中列的最大值以及如何创建数据集的副本

1
2
df.[column].max()
states2 = states.copy()

16. pandas中处理缺失数据的一些有效方法是什么?

ffill(前向填充)- 用于在数据分析中填充缺失值 - ffill:将最后一个有效观测向前传播到下一个有效。

1
df.fillna(method='ffill', inplace=True)

bfill- (后向填充)是一种通过将下一个有效观测向后传播来填充DataFrame或Series中缺失值的方法。

1
2
df.bfill(*,axis=None, inplace=False,limit=none,limit_area=None)
df.fillna(method='bfill', inplace=True)

插值:基于相邻数据点的值插补缺失值。此方法适用于有序数据,如时间序列。

1
df['column_name'] = df['column_name'].interpolate(method='linear')

使用机器学习模型- 基于数据集中其他特征预测缺失值的ML模型。对于小数据集可能复杂。

1
2
3
from sklearn.impute import SimpleImputer
imputer =SimpleImputer(strategy='mean')
df['column_name']= imputer.fit_transform(df[['column_name']])

17. 简要描述df.isnull().sum()的功能?

df.isnull().sum()用于获取每列的缺失值总数。

18. 集合的add方法的正确语法是什么?

set.add(item)

19. 使用哪些括号创建Python元组?

()

20. 哪种数据结构允许在其中添加重复的异构数据元素?

list

21. 有一个if语句由两个表达式组成,中间有逻辑and运算符。哪种情况会导致Python解释器运行if语句的主体?

当表达式返回True和True响应时。

22. 在Python中,你会为变量选择哪个名称?

_count

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计