hands-on-data-analysis 第二单元 2,3节

Posted 沧夜2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hands-on-data-analysis 第二单元 2,3节相关的知识,希望对你有一定的参考价值。

hands-on-data-analysis 第二单元 2,3节

第二节 数据重构

万事开头记得导入基本的库:

# 导入基本库
import numpy as np
import pandas as pd

2.1.数据合并——concat横向合并

官方文档:

pandas.concat — pandas 1.4.2 documentation (pydata.org)

text_left_up,text_right_up两张表,如果横向合并为一张表(就是列与列拼接在一起)

text_left_up

PassengerIdSurvivedPclassName
0103Braund, Mr. Owen Harris
1211Cumings, Mrs. John Bradley (Florence Briggs Th…
2313Heikkinen, Miss. Laina
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)
4503Allen, Mr. William Henry

text_right_up:

SexAgeSibSpParchTicketFareCabinEmbarked
0male22.01.00.0A/5 211717.2500NaNS
1female38.01.00.0PC 1759971.2833C85C
2female26.00.00.0STON/O2. 31012827.9250NaNS
3female35.01.00.011380353.1000C123S
4male35.00.00.03734508.0500NaNS
list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1)
result_up.head()

得到:

PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
01.00.03.0Braund, Mr. Owen Harrismale22.01.00.0A/5 211717.2500NaNS
12.01.01.0Cumings, Mrs. John Bradley (Florence Briggs Th…female38.01.00.0PC 1759971.2833C85C
23.01.03.0Heikkinen, Miss. Lainafemale26.00.00.0STON/O2. 31012827.9250NaNS
34.01.01.0Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01.00.011380353.1000C123S
45.00.03.0Allen, Mr. William Henrymale35.00.00.03734508.0500NaNS

就好比,把带有小明的学号的表和带有小明成绩的表合在一起。

2.2.数据合并——concat纵向合并

官方文档:

pandas.concat — pandas 1.4.2 documentation (pydata.org)

将train-left-down和train-right-down横向合并为一张表,并保存这张表为result_down。然后将上边的result_up和result_down纵向合并为result。

text_left_down的数据为:

PassengerIdSurvivedPclassName
044002Kvillner, Mr. Johan Henrik Johannesson
144112Hart, Mrs. Benjamin (Esther Ada Bloomfield)
244203Hampe, Mr. Leon
344303Petterson, Mr. Johan Emil
444412Reynaldo, Ms. Encarnacion

text_right_down数据为:

SexAgeSibSpParchTicketFareCabinEmbarked
0male31.000C.A. 1872310.500NaNS
1female45.011F.C.C. 1352926.250NaNS
2male20.0003457699.500NaNS
3male25.0103470767.775NaNS
4female28.00023043413.000NaNS
list_down=[text_left_down,text_right_down]
result_down = pd.concat(list_down,axis=1)
result = pd.concat([result_up,result_down])
result.head()

合并后的表为:

PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
01.00.03.0Braund, Mr. Owen Harrismale22.01.00.0A/5 211717.2500NaNS
12.01.01.0Cumings, Mrs. John Bradley (Florence Briggs Th…female38.01.00.0PC 1759971.2833C85C
23.01.03.0Heikkinen, Miss. Lainafemale26.00.00.0STON/O2. 31012827.9250NaNS
34.01.01.0Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01.00.011380353.1000C123S
45.00.03.0Allen, Mr. William Henrymale35.00.00.03734508.0500NaNS

2.3.数据合并——join

官方文档:
pandas.DataFrame.join — pandas 1.4.2 documentation (pydata.org)

Join columns of another DataFrame.

Join columns with other DataFrame either on index or on a key column. Efficiently join multiple DataFrame objects by index at once by passing a list.

从官方文档上可以知道,join的方式比较灵活。

可以在 索引 上将 列 与其他 DataFrame 连接。 也可以通过传递一个列表,一次有效地按索引连接多个 DataFrame 对象。

参数有:

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

2.4. concat 与 join 比较

concat、join等的比较

[Merge, join, concatenate and compare](https://pandas.pydata.org/docs/user_guide/merging.html?highlight=concat join#comparing-objects)

第三节 GroupBy 接口

官方文档:

pandas.DataFrame.groupby — pandas 1.4.2 documentation (pydata.org)

以上是关于hands-on-data-analysis 第二单元 2,3节的主要内容,如果未能解决你的问题,请参考以下文章

hands-on-data-analysis 第二单元 2,3节

hands-on-data-analysis 第二单元 2,3节

hands-on-data-analysis 第二单元 2,3节

hands-on-data-analysis 第二单元 第四节数据可视化

hands-on-data-analysis 第三单元 模型搭建和评估

hands-on-data-analysis 第三单元 模型搭建和评估