真实的碎碎念,这周在完成一个 Coursera Assignment 的过程中,遇见的各种各样的小问题

最近预约到了图书馆数字阅览区 27 英寸的MAC,真实的屏幕很大,很适合看视频,刷剧,所以终于又开始了 Coursera ,最近在看的是 Introduction to Data Science in Python - week3,做了好几天终于完成了这周的 Assignment ,在这个过程中,遇见了一堆一堆的问题,尤其对于我来说,一直在入门,写简单的 Python 都是需要查官方文档,除了 print() 啥也不记得,所以完成这份作业也是真的很不容易,也是真的觉得 Pandas 是一个很坑的东西,不对,应该是 Python 是一个很坑的东西(x

最近开学,赵老师送给了我们一句话 ”仰望星空,脚踏实地,在人间“ ,可能这些词早就听腻了,但是在那一刻我才感受到这句话真正的含义,可能因为这段时间一直在人间 ”历练“ ,感受了焦虑、迷茫,偶然间仰望星空,忽然想起很多曾经想追寻的脚步,于是自己也开始慢慢前行

”要觉得自己在这个城市不是一个多余的人“

开始脚踏实地,也就是开始在人间,开始遇见很多奇奇怪怪的 bug,还是基础不够,还是不能速成

pandas.DataFrame.merge

merge 就是用来合并 DataFrame 的,知道每个参数就好了,然后清楚自己最终想要得到的数据是什么样的,对应写参数就好啦

DataFrame.merge(right, how = "inner", 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)

参数

  • right 就是要合并的对象

  • how 就是 merge 的方式

    • 如果只需要左 dataframe 的 keys 就是 ”left“

    • 如果只需要右 dataframe 的 keys 就是 ”right“

    • 如果需要两个 dataframe 的并集就是 ”outer“

    • 如果需要两个 dataframe 的交集就是 ”inner“

  • on 就是如果要合并的 index / column 的名称两个 dataframe 都有,就可以将其传入 on

  • left_on 就是左边 dataframe 中要合并的 label

  • right_on 就是右边 dataframe 中要合并的 label

  • left_index 就是使用左边 dataframe 中的这个 index 作为 key

  • right_index 就是使用右边 dataframe 中的这个 index 作为 key

  • sort 就是是否在结果中对 keys 排序

返回值

返回 DataFrame

pandas.DataFrame.groupby

groupby 顾名思义,就是分组,涉及到拆分对象、应用函数、组合结果,可以用来对大量的数据进行分组并对这些分组进行计算

DataFrame.groupby(by = None, axis = 0, levle = None, as_index = True, sort = True, group_keys = True, observed = False, dropna = True)

参数

  • by 就是决定分组的那个,可以是很多种类型

    • mapping
    • function,如果是 function,就会对每个对象的 Index 分组
    • label / list of labels, 如果是 label ,就会对每个对象的 columns 分组
  • axis

    • 0 表示 index
    • 1 表示 columns
  • level

    当分组对象是 MultiIndex 时,level = 0 就是按第一层进行分组

  • sort

    • 对组 keys 进行排序
    • 关闭此功能可以获得更好的性能
    • 并不会影响每个组内观测值的顺序
    • 保留了每个组内行的顺序

返回值

返回 DataFrameGroupBy ,是一个 groupby 对象,包含分组信息

对 Series 分组

对 Series 分组时,groupby() 必须传入 by / level,传入 level = 0 的效果与传入 index name 一致