pandas使用

Pandas简介

 

学习目标:

  • 大致了解pandas的DataFrame和Series数据结构
  • 存取和处理DataFrame和Series中的数据结构
  • 将CSV数据导入pandas库的DataFrame
  • 对DataFrame重建索引来随机打乱数据

pandas是一种列存数据分析API。它用于处理和分析输入数据,用于许多机器学习框架中。此文仅仅介绍核心概念,完整参考官方文档。

基本概念

导入格式

from __future__ import print_function

import pandas as pd
pd.__version__

pandas中的数据结构有两类:

  • DataFrame,类似于关系型数据表格,包含多个行和已命名的列。
  • Series,单一列。DataFrame中包含一个或多个Series,每个 Series 均有一个名称。

创建Series的一种方法是构建Series对象。例如:

pd.Series(['San Francisco', 'San Jose', 'Sacramento'])

可以将映射string列名称的dict传递到它们各自的Series,从而创建DataFrame对象。如果Series在长度上不一致,系统会用特殊的NA\NaN填充缺失的值。例如:

city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
population = pd.Series([852469, 1015785, 485199])

pd.DataFrame({ 'City name': city_names, 'Population': population })

大多数情况下,你需要将整个文件加载到DataFrame中。

california_housing_dataframe = pd.read_csv("https://download.mlcc.google.cn/mledu-datasets/california_housing_train.csv", sep=",")
california_housing_dataframe.describe()

 显示DataFrame的前几个记录

california_housing_dataframe.head()

pandas另一个强大功能是绘制图表。

california_housing_dataframe.hist('housing_median_age')

访问数据

可以使用python dict/list指令访问DataFrame数据:

cities = pd.DataFrame({ 'City name': city_names, 'Population': population })
print(type(cities['City name']))
cities['City name']

 

print(type(cities['City name'][1]))
cities['City name'][1]

 pandas 针对高级索引和选择提供了极其丰富的 API

操控数据

Series应用python的基本运算指令。

例如

population / 1000.

NumPy 是一种用于进行科学计算的常用工具包。pandas Series 可用作大多数 NumPy 函数的参数:

import numpy as np

np.log(population)

更复杂的单列转换可以使用Series.apply。像 Python 映射函数一样,Series.apply将以参数形式接受lambda函数,而该函数会应用与每个值。

population.apply(lambda val: val > 1000000)

DataFrames 的修改方式也非常简单。例如,以下代码向现有 DataFrame 添加了两个 Series

cities['Area square miles'] = pd.Series([46.87, 176.53, 97.92])
cities['Population density'] = cities['Population'] / cities['Area square miles']
cities

索引

Series 和 DataFrame 对象也定义了 index 属性,该属性会向每个 Series 项或 DataFrame 行赋一个标识符值。

默认情况下,在构造时,pandas 会赋可反映源数据顺序的索引值。索引值在创建后是稳定的;也就是说,它们不会因为数据重新排序而发生改变。

city_names.index

调用 DataFrame.reindex 以手动重新排列各行的顺序。例如,以下方式与按城市名称排序具有相同的效果:

cities.reindex([2, 0, 1])

重建索引是一种随机排列 DataFrame 的绝佳方式。在下面的示例中,我们会取用类似数组的索引,然后将其传递至 NumPy 的 random.permutation 函数,该函数会随机排列其值的位置。如果使用此重新随机排列的数组调用 reindex,会导致 DataFrame 行以同样的方式随机排列。

有关详情,请参阅索引文档

 转于https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?utm_source=mlcc&utm_campaign=colab-external&utm_medium=referral&utm_content=pandas-colab&hl=zh-cn#scrollTo=8UngIdVhz8C0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值