惊叹!年薪70万的阿里数据岗位面试题曝光!
公众号:尤而小屋
作者:Peter
编辑:Peter
大家好,我是Peter~
前些天在某个技术交流群中,有位群友接到了阿里70万数据岗位的面试机会。在群里短暂的聊天过程中,他说了:在这次面试中,面试官问了他很多关于pandas的问题,而且都是很基础,也是很细节的知识点,比如他提到的:
ia和iat的使用 loc和iloc的使用 all和any的使用 pandas中的合并函数 stack和unstack的使用
也许大厂的面试在我们心中都是高大上的,但这也是真实的大厂面试:它们也会注重基础知识点的考查~
Pandas连载文章
关注【尤而小屋】的朋友都知道:Peter一直在坚持更新pandas相关的文章,有使用技巧,也有相关的案例。从4月24号到现在,目前已经更新21篇。
下面Peter来介绍一下每篇文章的具体内容,希望对大家有所帮助,也加深对pandas这个库相关知识点的理解和印象~
Pandas的专栏在这里,建议收藏!
Pandas的专栏在这里,建议收藏!
Pandas的专栏在这里,建议收藏!
第1篇:爆炸函数explode
介绍的是爆炸函数explode的使用:如何根据左边的表格数据统计出右边的结果?
第2篇:Pandas系列之Series数据类型
Pandas中有两种数据类型:Series和DataFrame,第2篇介绍的是Series类型。
第3篇:创建DataFrame:10种方式任你选
第3篇介绍的是DataFrame数据类型,主要是10种方式教你如何创建DataFrame类型数据。
创建空DataFrame 手动创建 读取文件创建 读取数据库创建 Python字典创建 Python列表创建 Python元组创建 通过Series数据创建 numpy数组创建 通过构建器创建
写完后发现,还有一种常见的创建方式:通过剪贴板read_clipboard
第4篇:各种骚气的Pandas取数操作
这是如何从pandas的Series或者DataFrame中(主要是DataFrame)取数的第一篇。
查看头尾数据 随机取数 数值型数据的筛选等
第5篇:赞!五花八门的Pandas筛选数据
这篇是pandas数据筛选的第2篇,主要介绍的方法是:
表达式取数 query、evel filter where、mask
第6篇:最后一篇:玩转Pandas取数
pandas取数的最后一篇,主要介绍的函数如下,涉及了3个面试题:
iloc和loc(面试题) at和iat(面试题) any和all(面试题)
第7篇:数据处理基石:数据探索
当我们生成或者导入了数据之后,通过数据的探索工作能够快速了解和认识数据基本信息,比如数据中字段的类型、索引、最值、缺失值等,可以让我们对数据的全貌有一个初步了解。
数据探索的工作包含:数据样本大小、数据形状shape、数据类型、缺失值等基本数据情况。
第8篇:Pandas数据类型操作
Pandas中的每个字段都是有自己的数据类型,在进行后续的处理之前我们需要先清楚每个字段是什么数据类型。
本篇文章总结了Pandas中进行数据类型转换的三种基本方法,最后介绍了如何基于数据类型来进行取数:
使用astype()函数进行强制类型转换 通过自定义函数来进行数据类型转换 使用Pandas提供的函数如to_numeric()、to_datetime()等进行转化 select_dtypes函数的使用(取数方法)
第9篇:图解Pandas的groupby机制
介绍的是Pandas中的分组机制:groupby。
这个pandas中分组重要的一个机制,Peter经常使用~
第10篇:图解Pandas的排名rank机制
介绍的是Pandas中的排名rank机制,类似于SQL中的3个窗口函数:row_number、rank、dense_rank
row_number:顺序排名,rank函数的中的method=first rank:跳跃排名,rank函数的中的method=min dense_rank:密集排名,rank函数的中的method=dense
第11篇:图解Pandas的排序机制sort_values
有了排名,肯定是少不了排序机制的。本篇文章重点是介绍了排序机制sort_values
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind='quicksort',
na_position='last', # last,first;默认是last
ignore_index=False,
key=None)
参数的具体解释为:
by:表示根据什么字段或者索引进行排序,可以是一个或多个 axis:排序是在横轴还是纵轴,默认是纵轴axis=0 ascending:排序结果是升序还是降序,默认是升序 inplace:表示排序的结果是直接在原数据上的就地修改还是生成新的DatFrame kind:表示使用排序的算法,快排quicksort,,归并mergesort, 堆排序heapsort,稳定排序stable ,默认是 :快排quicksort na_position:缺失值的位置处理,默认是最后,另一个选择是首位 ignore_index:新生成的数据帧的索引是否重排,默认False(采用原数据的索引) key:排序之前使用的函数
第12篇:图解Pandas的缺失值处理
数据总是不会那么地完美,可能会存在缺失值。本篇文章介绍了如何处理pandas中存在的缺失值。
处理pandas中使用的几个常见函数:
df.isnull()、df.notnull():两个函数互为取反 df.isna():等同于df.isnull() df.dropna():删除缺失值 df.fillna():填充缺失值
第13篇:图解Pandas重复值处理
数据中存在重复值也是常见情况,我们如何去重并且取出我们需要的数据是本篇文章的重点。
Pandas中处理重复值主要使用的是两个函数:
duplicated():判断是否有重复值 drop_duplicates() :删除重复值
第14篇:图解Pandas的数据合并merge
pandas中的合并函数merge是一个功能十分强大的函数,可以实现类似SQL中的各种join连接功能。
这也是面试题合并函数的答案之一
pd.merge(
left, # 待合并的2个数据框
right,
how='inner', # ‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’
on=None, # 连接的键,默认是相同的键
left_on=None, # 指定不同的连接字段:键不同,但是键的取值有相同的内容
right_on=None,
left_index=False, # 根据索引来连接
right_index=False,
sort=False, # 是否排序
suffixes=('_x', '_y'), # 改变后缀
copy=True,
indicator=False, # 显示字段来源
validate=None)
参数的具体解释为:
left、right:待合并的数据帧
how:合并的方式,有5种:{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, 默认是 ‘inner’
1、 left:左连接,保留left的全部数据;right类似;类比于SQL的left join 或者right join
2、outer:全连接功能,类似SQL的full outer join
3、inner:交叉连接,类比于SQL的inner join
4、cross:创建两个数据帧DataFrame的笛卡尔积,默认保留左边的顺序
on:连接的列属性;默认是两个DataFrame的相同字段
left_on/right_on:指定两个不同的键进行联结
left_index、right_index:通过索引进行合并
suffixes:指定我们自己想要的后缀
indictor:显示字段的来源
第15篇:图解Pandas数据合并:concat、join、append
除了merge,pandas中还有其他的合并函数:concat、join、append。
图解Pandas数据合并:concat、join、append
这也是面试题合并函数的答案一部分
第16篇:图解Pandas的轴旋转函数:stack和unstack
stack和unstack两个函数是实现pandas中数据的轴旋转问题,也就是行列转换的问题。
这也是面试题的答案
stack函数的主要作用是将原来的列转成最内层的行索引,转换之后都是多层次索引 unstack函数是将最内层的行索引变成列
第17篇:开启Pandas进阶:图解Pandas透视表、交叉表
从这篇文章开始,重点写pandas中的进阶部分内容,透视表和交叉表是第一个知识点。
pd.pivot_table(
data, # 制作透视表的数据
values=None, # 值
index=None, # 行索引
columns=None, # 列属性
aggfunc='mean', # 使用的函数,默认是均值
fill_value=None, # 缺失值填充
margins=False, # 是否显示总计
dropna=True, # 缺失值处理
margins_name='All', # 总计显示为All
observed=False,
sort=True # 排序功能 版本1.3.0才有
)
第18篇:3个Pandas宝藏函数:map+apply+applymap
本篇文章中主要是介绍了3个非常实用的宝藏函数:map+apply+applymap
map:能够满足绝大部分Series类型数据的同一个操作 apply:map的功能都能够实现,比较灵活,能够传入各种复杂或者自带的函数进行数据处理 applymap:对DataFrame中的数据执行同一个操作,使用较少
apply真的是非常强大
第19篇:对比SQL,学习Pandas操作
从14种方式,34个案例,对比SQL来学习pandas数据操作
查询全部数据 前N条 后N条 中间段数据 部分字段 指定等式条件 指定不等式条件 取反操作 指定多个条件 指定计算等式 模糊查询 排序 分组统计 取别名
第20篇:图解Pandas的移动函数shift
本篇文章主要是介绍了Pandas中的一个重要函数:shift。然后通过一个电商的复购案例数据详细讲解了如何使用移动函数。这个案例综合性很强,使用了很多的pandas函数,建议自己认真操作,并且收藏之后反复练习:
分组统计:groupby 过滤筛选数据:query 排序函数:sort_values 合并函数:concat 字段重命名:rename 缺失值删除:dropna 宝藏函数:apply
第21篇:图解Pandas的assign函数
assign函数主要是用来生成新的列,它的参数只有一个:DataFrame.assign(**kwargs)。
**kwargs: dict of {str: callable or Series}
关于参数的3点说明:
列名是关键字keywords 如果列名是可调用的,那么它们将在DataFrame上计算并分配给新的列 如果列名是不可调用的(例如:Series、标量scalar或者数组array),则直接进行分配
最后,这个函数的返回值是一个新的DataFrame数据框,包含所有现有列和新生成的列
总结
上面便是目前关于pandas全部更新的文章。从数据如何创建、如何筛选数据、如何进行数据探索、多种数据处理方式(缺失值、重复值、数据排名排序等)到透视表的制作、多个宝藏函数的使用,从基础入门到知识点的慢慢进阶。群友在面试中被问到的问题,Peter基本上都已经写成了上面的详细文章,如果有认真阅读,问题不大!
希望这些文章能够帮助读者快速入门和掌握pandas库的使用,学到更多的数据处理技巧。Pandas的文章Peter会继续更新下去,如果有任何问题,欢迎留言和联系Peter。
您的鼓励是Peter写作的最大动力,欢迎点赞~
推荐阅读
图解Pandas数据合并:concat、join、append
尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临