个性化阅读
专注于IT技术分析

推荐!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 strings  
a = ['Python', 'Pandas']  
# Calling DataFrame constructor on list  
info = pd.DataFrame(a)  
print(info)

输出

0
0   Python
1   Pandas

示例2:根据ndarrays的字典创建一个DataFrame:

import pandas as pd  
info = {'ID' :[101, 102, 103], 'Department' :['B.Sc', 'B.Tech', 'M.Tech', ]}  
info = pd.DataFrame(info)  
print (info)

输出

ID      Department
0      101        B.Sc
1      102        B.Tech
2      103        M.Tech

10)解释熊猫中的分类数据吗?

分类数据被定义为与统计中的分类变量相对应的Pandas数据类型。类别变量通常用于获取有限且通常为固定数量的可能值。例如:性别, 国家所属, 血型, 社会阶层, 观察时间或通过李克特量表进行的评分。分类数据的所有值都在类别或np.nan中。

在以下情况下, 此数据类型很有用:

  • 对于仅包含几个不同值的字符串变量很有用。如果要节省一些内存, 可以将字符串变量转换为分类变量。
  • 对于与逻辑顺序不同的变量的词法顺序(“一个”, “两个”, “三个”)很有用, 方法是转换为分类并指定类别的顺序, 排序和最小/最大负责使用逻辑顺序而不是词汇顺序。
  • 这对于向其他Python库发出信号很有用, 因为此列应被视为分类变量。

11)你将如何根据熊猫中的字典创建系列?

系列被定义为能够存储各种数据类型的一维数组。

我们可以从Dictionary创建一个Pandas系列:

根据字典创建系列:

我们也可以根据字典创建系列。如果将字典对象作为输入传递而未指定索引, 则按排序顺序获取字典键以构造索引。

如果传递了索引, 则将从字典中提取与索引中特定标签相对应的值。

import pandas as pd  
import numpy as np  
info = {'x' : 0., 'y' : 1., 'z' : 2.}  
a = pd.Series(info)  
print (a)

输出

x     0.0
y     1.0
z     2.0
dtype: float64

12)我们如何在熊猫中创建系列的副本?

我们可以使用以下语法创建系列的副本:

熊猫系列

Series.copy(deep = True)

上面的语句构成了一个深层副本, 其中包含数据和索引的副本。如果将deep的值设置为False, 它将既不会复制索引也不会复制数据。

注意:如果设置deep = True, 将复制数据, 并且不会递归复制实际的python对象, 仅复制对该对象的引用。


13)你将如何在Pandas中创建一个空的DataFrame?

DataFrame是熊猫的一种广泛使用的数据结构, 可与带有标记轴(行和列)的二维数组一起使用.DataFrame被定义为存储数据的标准方式, 并具有两个不同的索引, 即行索引和列索引。

创建一个空的DataFrame:

下面的代码显示了如何在Pandas中创建一个空的DataFrame:

# importing the pandas library  
import pandas as pd  
info = pd.DataFrame()  
print (info)

输出

Empty DataFrame
Columns: []
Index: []

14)如何将一列添加到pandas DataFrame?

我们可以将任何新列添加到现有DataFrame中。以下代码演示了如何将任何新列添加到现有DataFrame中:

# importing the pandas library  
import pandas as pd    
info = {'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 object   
  
print ("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 series
      one     two      three
a     1.0      1        20.0
b     2.0      2        40.0
c     3.0      3        60.0
d     4.0      4        NaN
e     5.0      5        NaN
f     NaN      6        NaN

Add new column using existing DataFrame columns
       one      two       three      four
a      1.0       1         20.0      21.0
b      2.0       2         40.0      42.0
c      3.0       3         60.0      63.0
d      4.0       4         NaN      NaN
e      5.0       5         NaN      NaN
f      NaN       6        NaN      NaN

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 pd
p1 = pd.Series([2, 4, 6, 8, 10])
p2 = pd.Series([8, 10, 12, 14, 16])
p1[~p1.isin(p2)]

0    2
1    4
2    6
dtype: int64

20)如何获得A系列和B系列都不通用的物品?

通过下面的示例, 我们得到p1和p2都不相同的所有项目:

import pandas as pd
import numpy as np
p1 = 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))  # union
p_i = pd.Series(np.intersect1d(p1, p2))  # intersect
p_u[~p_u.isin(p_i)]

输出

0     2
1     4
2     6
5    12
6    14
7    16
dtype: int64

21)如何获得数值序列的最小值, 第25个百分位数, 中位数, 第75个和最大值?

我们可以计算p的最小值, 第25个百分点, 中位数, 第75个和最大值, 如下例所示:

import pandas as pd
import numpy as np
p = 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 pd
import numpy as np
p= 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()

输出

s    4
r    4
q    3
p    3
u    3

23)如何将numpy数组转换为给定形状的数据框?

我们可以将序列p整形为具有6行2列的数据帧, 如下例所示:

import pandas as pd
import numpy as np
p = pd.Series(np.random.randint(1, 7, 35))
# Input
p = pd.Series(np.random.randint(1, 7, 35))
info = pd.DataFrame(p.values.reshape(7, 5))
print(info)

输出

0  1  2  3  4
0  3  2  5  5  1
1  3  2  5  5  5
2  1  3  1  2  6
3  1  1  1  2  2
4  3  5  3  3  3
5  2  5  3  6  4
6  3  6  6  6  5

24)如何将系列转换为DataFrame?

Pandas Series.to_frame()函数用于将系列对象转换为DataFrame。

Series.to_frame(name=None)

名称:指对象。其默认值为无。如果有一个值, 则将使用传递的名称代替系列名称。

s = pd.Series(["a", "b", "c"], name="vals")  
s.to_frame()

输出

vals
0          a
1          b
2          c

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 strings     
dmy_str1 = 'Wednesday, July 14, 2018'  
dmy_str2 = '14/7/17'  
dmy_str3 = '14-07-2017'  
  
# Define dates as the datetime objects  
dmy_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 dates  
print(dmy_dt1)  
print(dmy_dt2)  
print(dmy_dt3)

输出

2017-07-14 00:00:00
2017-07-14 00:00:00
2018-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 = 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面试问题

jQuery面试问题

赞(0) 打赏
未经允许不得转载:srcmini » 推荐!Python Pandas面试题和答案详解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏