动手学习数据分析 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,即使用默认索引
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步