数据可视化(一)初识pandas

本文翻译自https://www.kaggle.com/sohier/tutorial-accessing-data-with-pandas/notebook
数据集https://www.kaggle.com/sohier/tutorial-accessing-data-with-pandas/data
可视化是数据科学中一个重要的组成部分,制作精美易懂的图能更好地让我们了解数据集。
在正式开始本教程之前,先介绍一下pandas的应用。
pandas文档http://pandas.pydata.org/pandas-docs/stable/indexing.html#

import pandas as pd
#读入数据集,记得选择好路径
df = pd.read_csv("F:/dataset/parks.csv", index_col=['Park Code'])
#显示头三条数据
df.head(3)

这里写图片描述

#1单行选择
#iloc works on the positions in the index (so it only takes integers). 
#1.1通过行编号显示显示第二条数据(编号从零开始)
df.iloc[2]

这里写图片描述

#loc works on labels in the index.
#1.2根据定义的index_col获取行信息
df.loc['BADL']

这里写图片描述

#2多行选择,类似于单行选择
df.loc[['BADL', 'ARCH', 'ACAD']]

这里写图片描述

df.iloc[[2, 1, 0]]

这里写图片描述

#连续选择,类似于Matlab中的用法
df[:3]

这里写图片描述

df[3:6]

这里写图片描述

#3复合选择
#有时一行的数据过于庞杂,而我们需要的往往只是其中一部分
#对于这种情况我们可以通过一些约束条件达到想要的结果
#3.1例如:选出前三条数据所在州的信息
df['State'].head(3)

这里写图片描述

#3.2同样还可以用类似引用对象成员的方式获取信息
#上述代码还可以表示为
df.State.head(3)

这里写图片描述

#然而当时用这种方法来选择Park Code列是会报错
#因为Park Name中含有括号
df.Park Name

这里写图片描述

#为了解决这个问题,我们需要将格式进行统一
#由于pandas区分大小写,不妨将字母统一小写并用下划线链接
df.columns = [col.replace(' ', '_').lower() for col in df.columns]
#print(df.columns)
df.park_name

这里写图片描述

#3.3行与列的同时选择
#选择前三行的'state''acres'属性
df[['state', 'acres']][:3]

这里写图片描述

#4单值选择
#选出某行某列的特定值
df.state.iloc[2]

‘SD’

#注意:如果传入参数为一列,那么返回值也会不同
df.state.iloc[[2]]
#也可以写为:
df.iloc[[2]].state

这里写图片描述

#5通过布尔运算进行选取
#5.1获取结果值为布尔类型
(df.state == 'UT').head(3)

这里写图片描述

#选出符合条件的行(所在州为UT)
df[df.state == 'UT']

这里写图片描述

#5.2根据逻辑运算进行操作
#&与
#|或
#~非
#选择维度在60°以上或面积大于10^6英亩的公园(公园编号前三个)
df[(df.latitude > 60) | (df.acres > 10**6)].head(3)

这里写图片描述

#此外,还可以运用更为复杂的lambda表达式
#例如选出公园名字为五个词的行
df[df['park_name'].str.split().apply(lambda x: len(x) == 5)]

这里写图片描述

#6isin和isnull的应用
#这种方法可以大量简化工作
#例如要找出西海岸的所有公园
df[df.state.isin(['WA', 'OR', 'CA'])]

这里写图片描述

猜你喜欢

转载自blog.csdn.net/tilmant/article/details/80965531