python字典转dataframe_Python中 Pandas 50题冲关

Pandas 是基于 NumPy 的一种数据处理工具,该工具为了解决数据分析任务而创建。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的函数和方法。这些练习着重DataFrame和Series对象的基本操作,包括数据的索引、分组、统计和清洗。

之前也发过Numpy面试题,大家可以看一下!Python中的Numpy基础20问

参考资料 | 100-pandas-puzzles - GitHub | Pandas 百题大冲关

基本操作

  1. 导入 Pandas 库并简写为 pd,并输出版本号
import pandas 
  1. 从列表创建 Series
0, 
  1. 从字典创建 Series
'a':
  1. 从 NumPy 数组创建 DataFrame
'today',periods=
  1. 从CSV中创建 DataFrame,分隔符为“;”,编码格式为gbk
'test.csv', encoding=
  1. 从字典对象创建DataFrame,并设置索引
import numpy 
df = pd.DataFrame(data, index=labels)
df
  1. 显示df的基础信息,包括行的数量;列名;每一列值的数量、类型
df.info()
# 方法二
# df.describe()
  1. 展示df的前3
3]
  1. 取出dfanimalage
'animal', 
  1. 取出索引为[3, 4, 8]行的animalage
3, 
  1. 取出age值大于3的行
'age'] > 
  1. 取出age值缺失的行
'age'].isnull()]
  1. 取出age2,4间的行(不含)
'age']>
  1. f行的age改为1.5
'f', 
  1. 计算visits的总和
'visits'].sum()
  1. 计算每个不同种类animalage的平均数
'animal')[
  1. df中插入新行k,然后删除该行
#插入
  1. 计算df中每个种类animal的数量
'animal'].value_counts()
  1. 先按age降序排列,后按visits升序排列
'age', 
  1. priority列中的yes, no替换为布尔值True, False
'priority'] = df[
  1. animal列中的snake替换为python
'animal'] = df[
  1. 对每种animal的每种不同数量visits,计算平均age,即,返回一个表格,行是aniaml种类,列是visits数量,表格值是行动物种类列访客数量的平均年龄
'animal', columns=

进阶操作

  1. 有一列整数列A的DatraFrame,删除数值重复的行
'A': [
  1. 一个全数值DatraFrame,每个数字减去该行的平均数
5, 
  1. 一个有5列的DataFrame,求哪一列的和最小
5, 
  1. 给定DataFrame,求A列每个值的前3的B的值的和
'A': list(
  1. 给定DataFrame,有列A, BA的值在1-100(含),对A列每10步长,求对应的B的和
'A': [
  1. 给定DataFrame,计算每个元素至左边最近的0(或者至开头)的距离,生成新列y
'X': [
  1. 一个全数值的DataFrame,返回最大3个值的坐标
5, 
  1. 给定DataFrame,将负值代替为同组的平均值
'grps': list(
  1. 计算3位滑动窗口的平均值,忽略NAN
'group': list(

Series 和 Datetime索引

  1. 创建Series s,将2015所有工作日作为随机值的索引
'2015-01-01', end=
  1. 所有礼拜三的值求和
2].sum()
  1. 求每个自然月的平均数
'M').mean()
  1. 每连续4个月为一组,求最大值所在的日期
'4M')).idxmax()
  1. 创建2015-2016每月第三个星期四的序列
'2015-01-01', 

数据清洗

'From_To': [
  1. FlightNumber列中有些值缺失了,他们本来应该是每一行增加10,填充缺失的数值,并且令数据类型为整数
'FlightNumber'] = df[
  1. From_To列从_分开,分成From, To两列,并删除原始列
'_', expand=
  1. From, To大小写统一首字母大写其余小写
'From'] = df[
  1. Airline列,有一些多余的标点符号,需要提取出正确的航司名称。举例:'(British Airways. )' 应该改为 'British Airways'.
'Airline'] = df[
  1. Airline列,数据被以列表的形式录入,但是我们希望每个数字被录入成单独一列,delay_1, delay_2, ...没有的用NAN替代。
'RecentDelays'].apply(pd.Series)

层次化索引

  1. letters = ['A', 'B', 'C']numbers = list(range(10))的组合作为系列随机值的层次化索引
'A', 
  1. 检查s是否是字典顺序排序的
s.index.is_lexsorted()
# 方法二
# s.index.lexsort_depth == s.index.nlevels
  1. 选择二级索引为1, 3的行
1, 
  1. s进行切片操作,取一级索引至B,二级索引从2开始到最后
'B', 

46.计算每个一级索引的和(A, B, C每一个的和)

0)
  1. 交换索引等级,新的Series是字典顺序吗?不是的话请排序
0, 

可视化

import matplotlib.pyplot 
  1. 画出df的散点图
"xs", 
  1. 可视化指定4维DataFrame
"productivity":[
  1. 在同一个图中可视化2组数据,共用X轴,但y轴不同
"revenue":[

-END-

往期精彩

超简单!基于Python搭建个人“云盘”

推荐一些能提高生产力的 Python 库

Excel VS Python 谁更适合数据分析?

硬核!30 张图解 HTTP 常见的面试题

10个省时间的 PyCharm 技巧

python每日更换“必应图片”为“桌面壁纸”

教你使用Python下载全网视频!

END

关注【程序IT圈】,更多的Python好文输出

95b72bc76ea4b716509387856bb65f74.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值