Day 06 : 资料处理 Pandas (2)

今天接着介绍 pandas 如何表对资料表合并、资料汇总等等进阶用法!

资料表合并

inner join

假设有X表和Y表,我们想要取两边都有的资料,就会用到 inner join。
下图代表仅会留下白色交集的资料。

这边的 id 代表两张表都有的 key 值

pd.merge(X, Y, on='id', how='inner')

left join

以 X 表为母体表,代表 X 表的资讯都不能遗漏;将 Y 表当作额外的资讯参考,就会用到 left join
下图会留下红色圈圈的资料。

pd.merge(X, Y, on='id', how='left')

如果左右键值不一样的话可以改成

pd.merge(X, Y, left_on='id1', right_on='id2', how='left')

资料汇总

统计资料

描述性统计

df.describe()

相关系数

df.corr()

groupby

以 Survived 为基底,对於所有栏位做计算

df.groupby('Survived').count()


以两种以上的栏位为基底,对其他的栏位做计算

df.groupby(['Survived','Sex']).count()


计算也可以使用多种方法

df.groupby(['Survived']).aggregate(['min', 'max', 'mean', 'median'])

pivot table

类似 excel 的资料枢纽,更多请参考文件

pd.pivot_table(df, index=['Survived'], aggfunc=['mean', 'median'])

私心推荐

以上的招式非常多,初学者也很难在短时间内就上手起来。因此这里推荐可以使用一个神人套件 pandas_profile

安装方式

pip install pandas-profiling

使用方式

profile = ProfileReport(df, title="Pandas Profiling Report")
profile
# Saving the report
profile.to_file("report.html")

接着在 notebook 就会出现可以互动式的结果,可以快速浏览这份资料集的概况,是资料分析工具的一大利器。

资料汇出

df.to_excel('filename.xlsx')
df.to_csv('filename.csv')

<<:  [CSS] Flex/Grid Layout Modules, part 13

>>:  Day 3:安装 Hexo 前置作业:Node.js、Git、网页编辑器 VS code、文章编辑器 Typora

【Day14】利用Ezyme来跑个小小测试,还有..测试权衡是虾咪东东 (•ө•)!!?

写测试时,我们基本需要三样东西 Enzyme Enzyme跟React沟通的适配器(Adapter)...

Day15 - 模型评估 part2

前面提到过使用不同架构(FCDAE(3h),FCDAE(5h))的全连接神经网路除噪模型对两个语音特...

[第01天]理财达人Mx. Ada-环境准备

目标 希冀结合Python-shioaji建立理财机器人Mx. Ada,提供报价、下单、帐务及通知功...

xlsx档与json档转换

这篇接续上一篇,将电影名称爬取後转为json档,今天就要再转为xlsx档,使资料以表格方式呈现。废话...

Leetcode: 1627. Graph Connectivity With Threshold

打起精神来,今天有比昨天更好一点! 这题,我对他的解释是,现在有未知的图,我有些node跟node之...