动手学习数据分析 Task03

本文是Datawhale的组队学习动手学习数据分析的学习笔记,课件内容来源于Datawhale的团队;代码部分参考了b站up主橘子冰的一隅角落的系列视频

第二章 第二节:数据重构

2.4 数据的合并

2.4.1 任务一:将data文件夹里面的所有数据都载入,与之前的原始数据相比,观察他们的之间的关系

使用read_csv()函数读取数据。

2.4.2:任务二:使用concat方法:将数据train-left-up.csv和train-right-up.csv横向合并为一张表,并保存这张表为result_up

concat()函数可以沿着指定的轴将多个dataframe或者series拼接到一起

pd.concat(
     objs,      
     axis=0,     
     join='outer',
     ignore_index=False,
     keys=None,      
     levels=None,     
     names=None,      
     verify_integrity=False,     
     copy=True)
  • objs:Series,DataFrame或Panel对象的序列或映射,如果传递了dict,则排序的键将用作键参数
  • axis:默认是0代表按行合并,如果等于1代表按列合并
  • join:合并的时候索引的对齐方式,默认是outer join,也可以是inner join
  • ignore_index:是否忽略掉原来的数据索引,默认为False
  • keys:键序列,默认无。如果通过了多个级别,则应包含 元组 。使用传递的键作为最外层构建层次索引
  • levels:序列列表,默认值无。用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断
  • names:默认无。生成的分层索引中的级别名称。
  • verify_integrity:默认为 False。检查新的连接轴是否包含重复项。相对于实际的数据连接,这可能非常昂贵
  • sort:默认为 False。如果连接为“外部”时尚未对齐,则对非连接轴进行排序。这在 join=‘inner’ 时无效,它已经保留了非串联轴的顺序。在 1.0.0 版更改: 默认情况下更改为不排序
  • copy:默认为True,如果为False,则请勿不必要德复制数据

2.4.3 任务三:使用concat方法:将train-left-down和train-right-down横向合并为一张表,并保存这张表为result_down。然后将上边的result_up和result_down纵向合并为result。

使用concat函数,同任务二

2.4.4 任务四:使用DataFrame自带的方法join方法和append:完成任务二和任务三的任务

join(self,other,on,how , lsuffix,rsuffix,sort,validate)
on:合并other表的列索引或列名可以是列表

how:可选’left’, ‘right’, ‘outer’, ‘inner’, ‘cross’,默认为left

lsuffix:列名重复时,合并后左表列名使用的后缀,默认’ ‘

rsuffix:列名重复时,合并后右表列名使用的后缀,默认’ '

sort:True时根据合并的索引排列合并结果,False时根据how参数排序,默认False

validate:设置合并数据类型,支持"one_to_one" or “1:1”、“one_to_many” or “1:m”、“many_to_one” or “m:1”、“many_to_many” or “m:m”

append(other,ignore_index,verify_integrity,sort)

other:要追加的DataFrame、Series或类似字典的对象

ignore_index:是否忽略索引,在结果中重新标记行的索引,默认为False

verify_integrity:如果为True,在创建具有重复索引的情况下会引发ValueError异常,默认为False

sort:如果为True,则在列不对齐时对列进行排序,默认为False

2.4.5 任务五:.用Panads的merge方法和DataFrame的append方法:完成任务二和任务三的任务

merge(left, right, how, on, left_on, right_on,left_index, right_index, sort, suffixes, copy, indicator)

left,right:指左右两个DataFrame对象

how:指左右两个对象存在不重合的键时,取结果的方式.默认情况下how='inner'。how='inner'取的是交集,how='outer'取的是并集,还有how='left',how='right',同时how='inter'称为内连接,outer称为外连接,left称为左连接,right称为右连接

on, left_on, right_on:默认情况下on=None,用来显示指定列名(键名),如果两个对象中的列名(键名)不相同时,可以分别使用left_on和right_on来分别指定两个对象的键名

left_index, right_index:如果想直接使用行索引作为连接键名的话,可以将left_index和right_index由原来的False设置为True

sort:默认情况下sort为True

suffixes:指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称

copy:默认为True,总是将数据复制到数据结构中

2.4.6 任务六:完成的数据保存为result.csv

result.to_csv('result.csv')

2.5 换一种角度看数据

2.5.1 任务一:将我们的数据变为Series类型的数据

stack函数的主要作用是将原来的列转成最内层的行索引

2.6 数据运用

2.6.1 任务一:通过《Python for Data Analysis》P303、Google or Baidu来学习了解GroupBy机制

df.groupby(
    by=None,
    axis=0,
    level=None,
    as_index: 'bool' = True,
    sort: 'bool' = True,
    group_keys: 'bool' = True,
    squeeze: 'bool' = <object object at 0x137ac9240>,
    observed: 'bool' = False,
    dropna: 'bool' = True,
)

by:指定要分组的字段,即根据哪个字段进行分组,可以是一个,也可以是多个

axis:指定对列或者行分组,默认为0,即对列分组。当axis = 1时,表示对行分组

as_index:默认为True,即将分组列名作为输出的索引,也可以为False,即使用默认索引

posted on 2024-03-17 00:14  人间烟火天上星  阅读(3)  评论(0编辑  收藏  举报