推荐!Python Pandas面试题和答案详解

推荐!Python Pandas面试题和答案详解

文章图片
以下列出了最常见的Python Pandas面试问题和答案。
1)定义熊猫/ Python熊猫?
Pandas被定义为一个开源库, 可在Python中提供高性能的数据处理。熊猫的名称源自” 面板数据” 一词, 这意味着来自多维数据的计量经济学。它可以用于Python中的数据分析, 并由Wes McKinney在2008年开发。它可以执行五个重要的步骤, 这些步骤不管数据的来源如何, 即对数据的处理和分析, 即加载, 操作, 准备, 建模, 和分析。
2)提到熊猫中不同类型的数据结构?
熊猫提供了两种数据结构, 而熊猫库均支持这两种数据结构:Series和DataFrames。这两个数据结构都建立在NumPy之上。
系列是熊猫中的一维数据结构, 而数据帧是熊猫中的二维数据结构。
3)在熊猫中定义系列?
系列被定义为能够存储各种数据类型的一维数组。系列的行标签称为索引。通过使用” 系列” 方法, 我们可以轻松地将列表, 元组和字典转换为系列。系列不能包含多个列。
4)如何计算系列的标准偏差?
Pandas std()被定义为用于计算给定数字集, DataFrame, 列和行的标准偏差的函数。
Series.std(轴=无, skipna =无, 级别=无, ddof = 1, numeric_only =无, **扭曲)
5)在熊猫中定义DataFrame?
DataFrame是广泛使用的熊猫数据结构, 可与带有标记轴(行和列)的二维数组一起使用.DataFrame被定义为存储数据的标准方式, 并具有两个不同的索引, 即行索引和列索引。它包含以下属性:
  • 这些列可以是异构类型, 例如int和bool。
  • 它可以看作是Series结构的字典, 其中行和列都被索引了。对于列, 它表示为” 列” , 对于行, 则表示为” 索引” 。
6)大熊猫图书馆有哪些重要功能?
熊猫库的主要功能如下:
  • 高效记忆
  • 数据对齐
  • 重塑
  • 合并并加入
  • 时间序列
7)解释在熊猫中重新索引吗?
重新索引用于通过可选的填充逻辑使DataFrame符合新索引。它将NA / NaN放置在先前索引中不存在值的位置。除非产生与当前索引相等的新索引, 否则它将返回一个新对象, 并且copy的值变为False。它用于更改DataFrame的行和列的索引。
8)用于创建散布图矩阵的熊猫库工具的名称是什么?
Scatter_matrix
9)定义可以在熊猫中创建DataFrame的不同方式吗?
我们可以使用以下方式创建一个DataFrame:
  • 清单
  • ndarrays的字典
示例1:使用列表创建一个DataFrame:
import pandas as pd# a list of stringsa = ['Python', 'Pandas']# Calling DataFrame constructor on listinfo = pd.DataFrame(a)print(info)

输出
00Python1Pandas

示例2:根据ndarrays的字典创建一个DataFrame:
import pandas as pdinfo = {'ID' :[101, 102, 103], 'Department' :['B.Sc', 'B.Tech', 'M.Tech', ]}info = pd.DataFrame(info)print (info)

输出
IDDepartment0101B.Sc1102B.Tech2103M.Tech

10)解释熊猫中的分类数据吗?
分类数据被定义为与统计中的分类变量相对应的Pandas数据类型。类别变量通常用于获取有限且通常为固定数量的可能值。例如:性别, 国家所属, 血型, 社会阶层, 观察时间或通过李克特量表进行的评分。分类数据的所有值都在类别或np.nan中。
在以下情况下, 此数据类型很有用:
  • 对于仅包含几个不同值的字符串变量很有用。如果要节省一些内存, 可以将字符串变量转换为分类变量。
  • 对于与逻辑顺序不同的变量的词法顺序(“ 一个” , “ 两个” , “ 三个” )很有用, 方法是转换为分类并指定类别的顺序, 排序和最小/最大负责使用逻辑顺序而不是词汇顺序。
  • 这对于向其他Python库发出信号很有用, 因为此列应被视为分类变量。
11)你将如何根据熊猫中的字典创建系列?
系列被定义为能够存储各种数据类型的一维数组。
我们可以从Dictionary创建一个Pandas系列:
根据字典创建系列:
我们也可以根据字典创建系列。如果将字典对象作为输入传递而未指定索引, 则按排序顺序获取字典键以构造索引。
如果传递了索引, 则将从字典中提取与索引中特定标签相对应的值。
import pandas as pdimport numpy as npinfo = {'x' : 0., 'y' : 1., 'z' : 2.}a = pd.Series(info)print (a)

输出
x0.0y1.0z2.0dtype: float64

12)我们如何在熊猫中创建系列的副本?
我们可以使用以下语法创建系列的副本:
熊猫系列
Series.copy(deep = True)
上面的语句构成了一个深层副本, 其中包含数据和索引的副本。如果将deep的值设置为False, 它将既不会复制索引也不会复制数据。
注意:如果设置deep = True, 将复制数据, 并且不会递归复制实际的python对象, 仅复制对该对象的引用。 13)你将如何在Pandas中创建一个空的DataFrame?
DataFrame是熊猫的一种广泛使用的数据结构, 可与带有标记轴(行和列)的二维数组一起使用.DataFrame被定义为存储数据的标准方式, 并具有两个不同的索引, 即行索引和列索引。
创建一个空的DataFrame:
下面的代码显示了如何在Pandas中创建一个空的DataFrame:
# importing the pandas libraryimport pandas as pdinfo = pd.DataFrame()print (info)

输出
Empty DataFrameColumns: []Index: []

14)如何将一列添加到pandas DataFrame?
我们可以将任何新列添加到现有DataFrame中。以下代码演示了如何将任何新列添加到现有DataFrame中:
# importing the pandas libraryimport pandas as pdinfo = {'one' : pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e']), 'two' : pd.Series([1, 2, 3, 4, 5, 6], index=['a', 'b', 'c', 'd', 'e', 'f'])} info = pd.DataFrame(info)# Add a new column to an existing DataFrame objectprint ("Add new column by passing series")info['three']=pd.Series([20, 40, 60], index=['a', 'b', 'c'])print (info)print ("Add new column using existing DataFrame columns")info['four']=info['one']+info['three']print (info)

输出
Add new column by passing seriesonetwothreea1.0120.0b2.0240.0c3.0360.0d4.04NaNe5.05NaNfNaN6NaNAdd new column using existing DataFrame columnsonetwothreefoura1.0120.021.0b2.0240.042.0c3.0360.063.0d4.04NaNNaNe5.05NaNNaNfNaN6NaNNaN

15)如何在Pandas DataFrame中添加索引, 行或列?
向数据框添加索引
如果你创建DataFrame, 则熊猫可以将输入添加到index参数。它将确保你具有所需的索引。如果未指定输入, 则默认情况下, DataFrame包含一个数值索引, 该索引从0开始并在DataFrame的最后一行结束。
向数据框添加行
我们可以使用.loc, iloc和ix在DataFrame中插入行。
  • loc基本上适用于我们索引的标签。可以理解为好像我们插入loc [4]一样, 这意味着我们正在寻找索引为4的DataFrame值。
  • iloc基本上适用于索引中的位置。可以理解为好像我们插入了iloc [4]一样, 这意味着我们正在寻找索引’ 4’ 上存在的DataFrame的值。
  • ix是一个复杂的情况, 因为如果索引是基于整数的, 我们将标签传递给ix。 ix [4]意味着我们正在DataFrame中查找索引标记为4的那些值。但是, 如果索引不仅基于整数, 则ix将把位置视为iloc。
将列添加到DataFrame
如果要将列添加到DataFrame, 则可以使用loc或iloc轻松地执行与向DataFrame添加索引相同的过程。
16)如何从熊猫数据框中删除索引, 行或列?
从你的DataFrame中删除索引
如果要从DataFrame中删除索引, 则必须执行以下操作:
重置DataFrame的索引。
执行del df.index.name删除索引名称。
通过重置索引来删除重复的索引值, 然后从索引列中删除重复的值。
删除一行索引。
从你的DataFrame中删除列
你可以使用drop()方法从DataFrame中删除列。
传递给drop()方法的axis参数如果表示行则为0, 如果删除列则为1。
你可以就地传递参数并将其设置为True, 以在不重新分配DataFrame的情况下删除列。
你还可以使用drop_duplicates()方法从列中删除重复的值。
从数据框中删除一行
通过使用df.drop_duplicates(), 我们可以从DataFrame中删除重复的行。
你可以使用drop()方法来指定要从DataFrame中删除的行的索引。
17)如何重命名Pandas DataFrame的索引或列?
你可以使用.rename方法为DataFrame的列或索引值赋予不同的值。
18)如何遍历Pandas DataFrame?
你可以通过将for循环与DataFrame上的iterrows()调用结合使用来遍历DataFrame的行。
19)如何获得系列B中不存在的系列A的物品?
我们可以使用isin()方法从p1中删除p2中存在的项目。
import pandas as pdp1 = pd.Series([2, 4, 6, 8, 10])p2 = pd.Series([8, 10, 12, 14, 16])p1[~p1.isin(p2)]


021426dtype: int64

20)如何获得A系列和B系列都不通用的物品?
通过下面的示例, 我们得到p1和p2都不相同的所有项目:
import pandas as pdimport numpy as npp1 = pd.Series([2, 4, 6, 8, 10])p2 = pd.Series([8, 10, 12, 14, 16])p1[~p1.isin(p2)]p_u = pd.Series(np.union1d(p1, p2))# unionp_i = pd.Series(np.intersect1d(p1, p2))# intersectp_u[~p_u.isin(p_i)]

输出
021426512614716dtype: int64

21)如何获得数值序列的最小值, 第25个百分位数, 中位数, 第75个和最大值?
我们可以计算p的最小值, 第25个百分点, 中位数, 第75个和最大值, 如下例所示:
import pandas as pdimport numpy as npp = pd.Series(np.random.normal(14, 6, 22))state = np.random.RandomState(120)p = pd.Series(state.normal(14, 6, 22))np.percentile(p, q=[0, 25, 50, 75, 100])

输出
array([ 4.61498692, 12.15572753, 14.67780756, 17.58054104, 33.24975515])

22)如何获得系列中唯一项目的频率计数?
我们可以计算每个唯一值p的频率计数, 如下例所示:
import pandas as pdimport numpy as npp= pd.Series(np.take(list('pqrstu'), np.random.randint(6, size=17)))p = pd.Series(np.take(list('pqrstu'), np.random.randint(6, size=17)))p.value_counts()

输出
s4r4q3p3u3

23)如何将numpy数组转换为给定形状的数据框?
我们可以将序列p整形为具有6行2列的数据帧, 如下例所示:
import pandas as pdimport numpy as npp = pd.Series(np.random.randint(1, 7, 35))# Inputp = pd.Series(np.random.randint(1, 7, 35))info = pd.DataFrame(p.values.reshape(7, 5))print(info)

输出
01234032551132555213126311122435333525364636665

24)如何将系列转换为DataFrame?
Pandas Series.to_frame()函数用于将系列对象转换为DataFrame。
Series.to_frame(name=None)

名称:指对象。其默认值为无。如果有一个值, 则将使用传递的名称代替系列名称。
s = pd.Series(["a", "b", "c"], name="vals")s.to_frame()

输出
vals0a1b2c

25)什么是Pandas NumPy数组?
数值Python(Numpy)被定义为Python软件包, 用于执行多维和一维数组元素的各种数值计算和处理。使用Numpy数组的计算比普通的Python数组快。
26)如何将DataFrame转换为NumPy数组?
为了执行一些高级数学函数, 我们可以将Pandas DataFrame转换为numpy数组。它使用DataFrame.to_numpy()函数。
DataFrame.to_numpy()函数应用于返回numpy ndarray的DataFrame。
DataFrame.to_numpy(dtype=None, copy=False)

27)如何将DataFrame转换为Excel文件?
我们可以使用to_excel()函数将DataFrame导出到excel文件。
要将单个对象写入excel文件, 我们必须指定目标文件名。如果要写入多个工作表, 则需要创建一个具有目标文件名的ExcelWriter对象, 还需要在必须写入的文件中指定工作表。
28)我们如何排序DataFrame?
我们可以通过以下几种有效地在DataFrame中执行排序:
  • 按标签
  • 按实际值
按标签
可以使用sort_index()方法对DataFrame进行排序。可以通过传递轴参数和排序顺序来完成。默认情况下, 按升序对行标签进行排序。
按实际值
这是另一种可以在DataFrame中执行排序的方法。与索引排序类似, sort_values()是一种用于对值进行排序的方法。
它还提供了一项功能, 我们可以在其中指定要对值进行排序的DataFrame的列名。通过传递” by” 参数来完成。
29)什么是熊猫时间序列?
时间序列数据被定义为信息的重要来源, 该信息提供了可用于各种业务的策略。从传统的金融行业到教育行业, 它包含许多有关时间的细节。
时间序列预测是一种处理时间序列数据的机器学习模型, 用于通过时间序列建模预测未来值。
30)什么是时间偏移?
偏移量指定一组符合DateOffset的日期。我们可以创建DateOffsets将日期向前移动到有效日期。
31)定义时间段?
时间段表示时间跨度, 例如, 天, 年, 季度或月等。它被定义为允许我们将频率转换为时间段的类。
32)如何将字符串转换为日期?
以下代码演示了如何将字符串转换为日期:
fromdatetime import datetime# Define dates as the stringsdmy_str1 = 'Wednesday, July 14, 2018'dmy_str2 = '14/7/17'dmy_str3 = '14-07-2017'# Define dates as the datetime objectsdmy_dt1 = datetime.strptime(date_str1, '%A, %B %d, %Y')dmy_dt2 = datetime.strptime(date_str2, '%m/%d/%y')dmy_dt3 = datetime.strptime(date_str3, '%m-%d-%Y')#Print the converted datesprint(dmy_dt1)print(dmy_dt2)print(dmy_dt3)

输出
2017-07-14 00:00:002017-07-14 00:00:002018-07-14 00:00:00

33)什么是数据聚合?
数据聚合的主要任务是将某种聚合应用于一个或多个列。它使用以下内容:
  • sum:用于返回所请求轴的值之和。
  • min:用于返回所请求轴的最小值。
  • max:用于返回所请求轴的最大值。
34)什么是熊猫指数?
熊猫索引被定义为从DataFrame中选择特定行和列数据的重要工具。它的任务是组织数据并提供对数据的快速访问。也可以称为子集选择。
35)定义多个索引?
多重索引被定义为必不可少的索引, 因为它处理数据分析和处理, 尤其是处理高维数据时。它还使我们能够在Series和DataFrame等较低维度的数据结构中存储和处理任意数量的维度的数据。
36)定义重新索引?
重新索引用于更改DataFrame的行和列的索引。我们可以使用reindex()方法为单行或多行重新索引。如果DataFrame中不存在默认索引, 则为新索引中的默认值分配NaN。
DataFrame.reindex(labels = None, index = None, column = None, axis = None, method = None, copy = True, level = None, fill_value = http://www.srcmini.com/nan, limit = None, 公差= None)
37)如何设置索引?
我们可以在制作数据框时设置索引列。但是有时, 一个数据帧是由两个或多个数据帧组成的, 然后可以使用此方法更改索引。
38)如何重置索引?
DataFrame的Reset index用于通过使用’ reset_index’ 命令来重置索引。如果DataFrame具有MultiIndex, 则此方法可以删除一个或多个级别。
39)描述熊猫的数据操作?
在Pandas中, DataFrame有不同的有用数据操作, 如下所示:
  • 行和列选择
我们可以通过传递行和列的名称来选择DataFrame的任何行和列。当你从DataFrame中选择它时, 它将变为一维并被视为Series。
  • 筛选资料
我们可以通过在DataFrame中提供一些布尔表达式来过滤数据。
  • 空值
当没有数据提供给项目时, 将出现Null值。各个列可能不包含任何值, 通常以NaN表示。
40)在熊猫中定义GroupBy?
在熊猫中, groupby()函数允许我们通过在实际数据集上利用它们来重新排列数据。它的主要任务是将数据分成不同的组。这些组基于一些标准进行分类。可以从任何轴划分对象。
DataFrame.groupby(by = None, axis = 0, level = None, as_index = True, sort = True, group_keys = True, squeeze = False, ** kwargs)
工作/人力资源面试问题
JavaScript面试问题
Java OOP面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题
面试技巧
公司面试问题与程序
Java基础面试问题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
【推荐!Python Pandas面试题和答案详解】jQuery面试问题

    推荐阅读