如何利用Pandas实现行对齐和列对齐?

专栏 / 如何利用Pandas实现行对齐和列对齐?

如何利用Pandas实现行对齐和列对齐?

2020-12-11 17:01 --阅读 · --喜欢 · 倍云数据
粉丝: 17 文章: 139

Pandas 使用行索引和列标签表达和分析数据,分别对应 axis=0, axis=1,行索引、列标签带来一些便捷的功能。那么如何利用Pandas实现行对齐和列对齐?今天番茄加速就来讲一下。

如果玩Pandas,还没有注意到对齐 alignment,这个特性,那该好好看看接下来的分析。

基于行索引的对齐,与基于列标签的对齐,原理是一致的,它们其实相当于字典的 key,起到对齐数据作用。但是,这种说法抽象了些,没有例子不好想象出对齐的作用。

下面使用google app store 重点分析“行对齐”功能,理解它后,列对齐也自然理解。

导入包:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

版本号:

print(pd.__version__)

print(np.__version__)

print(sns.__version__)

1.0.1

1.18.1

0.11.0

导入数据:

df = pd.read_csv('kaggle-data/googleplaystore.csv')

df.head(3)

图片

剔除一些异常数据后得到 df_normal,根据 Rating 为每个 app 排名

rank = df_normal.Rating.rank(method='min',na_option='bottom',ascending=False)

rank.head(3)

method 参数指定:Rating 值相等时排名取小,na_option 指定空值排到最后,ascending 指定倒序

将上面得到的新列 rank 插入 df_normal 中:

df_normal.insert(2,'rank', rank, allow_duplicates=True)

df_normal.head(3)

因为 df_normal 和 rank 的行索引 index 都是从0 开始的自增,所以即便没有自动对齐,也是准确的:

但是,你看下面的情况,自动对齐的方便性就能显示出来

根据 Reviews 列排序

### 根据 Reviews 次数从少到多排序

df_by_reviews = df_normal.sort_values(by='Reviews')

df_by_reviews.head(3)

得到 df_by_reviews ,注意它的 index 不是按照从0自增

图片

此时在 df_by_reviews 中,插入 rank 还能确保数据对齐吗

### 此时插入排名 rank 列,数据会自动对其

df_by_reviews.insert(3,'rank_copy',rank)

df_by_reviews.head()

看到 rank 列 和 rank_copy 列相等,通过下面一行代码验证出来:

len( df_by_reviews[ df_by_reviews['rank'] == df_by_reviews['rank_copy'] ]) == len(df_by_reviews)

由此可见,Pandas已经为数据自动对齐。

但是,如果 rank 的 index 某些索引值没有出现在 df_by_reviews中, 此时又会怎么对齐呢?

### 如果后者index序列中某些值没有出现在df_by_reviews的index中

### 举个例子

df_test = pd.DataFrame({'a':[1,4,7],'b':[5,2,1]},index=[4,3,1])

ser = pd.Series(index=[3,2,1],data=[0,9,8])

结果ser 索引值 2 在 df_test 中找不到对应,故为 NaN

以上就是 Pandas 数据对齐的一个基本介绍,知道这些基本原理后再去使用Pandas 做数据分析,心里才会更有谱。


投诉或建议
斩获“双金”!玻色量子在中国移动第七届创客马拉松大赛脱颖而出
4月7日,中国移动第七届创客马拉松大赛总决赛在厦门圆满落幕。此次大赛以“能力无界 智算同行”为主题,经过近4000个创新项目的层层选拔,玻色量子凭借“相干量子计算设备”项目脱颖而出,成功摘取“双金”:总决赛全球通企业赛道一等奖与创客先锋奖。此次玻色量子成功斩获“双金”,代表着玻色量子深谙量子计算应用的行业痛点与用户需求,不仅具有卓越强劲的光量子计算技术实力,已经实现光量子计算机真机落地,还拥有优秀的“产学研用”协同创新能力,可以充分发挥光量子计算优越性,助力各行业高效实现“量子+”实用化解决方案的场景应用
卒中后失语症的静息态功能磁共振成像相关研究进展
来源:磁共振成像传媒卒中后失语症(poststroke aphasia, PSA)是中枢神经病变引起的抽象信号思维障碍,进而丧失口头和书面表达能力和理解能力的一种临床综合征,在我国并发PSA的患者占所有卒中患者的21%~38%。患者并发PSA后与他人交流与沟通存在很大的困难,后期的生活质量严重下降,给家庭与社会经济带来了沉重负担,该并发症甚至可以成为患者后期功能依赖和死亡的独立预测因子。PSA是一种由大脑语言区及相关网络受损而引发的获得性语言障碍,其临床表现因病变累及左侧大脑半球不同位置而复杂多样,常表现