首页 > 其他 > 详细

AI - MLCC - 04 - 使用TF的基本步骤02 - Pandas 简介

时间:2019-01-13 23:13:20      阅读:242      评论:0      收藏:0      [点我收藏+]

原文链接:https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb

1- Pandas


主要数据结构

  • DataFrame: 数据框架是用于数据操控的一种常用抽象实现形式,可以理解为一个关系型数据表格,其中包含多个行和已命名的列。
  • Series: 单一列。DataFrame 中包含一个或多个 Series,每个 Series 均有一个名称。

 

2- 示例讲解

源码文件:https://github.com/anliven/Hello-Data/tree/master/Pandas

# coding=utf-8
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

print("version: ", pd.__version__)

# ### 显示设置
# 默认情况下,如果DataFrame的行列数量太多,print将只显示部分内容
pd.set_option(‘display.max_columns‘, None)  # 显示所有列
pd.set_option(‘display.max_rows‘, None)  # 显示所有行
pd.set_option(‘max_colwidth‘, 100)  # 设置value的显示长度为100,默认为50

# ### 基本概念
city_names = pd.Series([‘San Francisco‘, ‘San Jose‘, ‘Sacramento‘])  # 构建Series对象
population = pd.Series([852469, 1015785, 485199])  # 构建Series对象
maps = pd.DataFrame({‘City name‘: city_names, ‘Population‘: population})  # 创建DataFrame对象
print("DataFrame: ", "\n", maps)  # 如果Series在长度上不一致,系统会用特殊的NA/NaN值填充缺失的值

california_housing_dataframe = pd.read_csv("Zcalifornia_housing_train.csv", sep=",")  # 将整个文件加载到DataFrame
info = california_housing_dataframe.describe()  # 使用DataFrame.describe来显示关于DataFrame的统计信息
print(info)
info_head = california_housing_dataframe.head()  # 显示DataFrame的前几个记录
print(info_head)

hist = california_housing_dataframe.hist(‘housing_median_age‘)  # 绘制图表:使用DataFrame.hist快速了解一个列中值的分布
print(hist)
plt.show()  # 显示图表

# ### 访问数据
# 以Python的dict/list方式访问DataFrame数据
# 文档: http://pandas.pydata.org/pandas-docs/stable/indexing.html
cities = pd.DataFrame({‘City name‘: city_names, ‘Population‘: population})
print(type(cities[‘City name‘]), type(cities[0:2]), type(cities[‘City name‘][1]))
print(cities)
print(cities[‘City name‘])
print(cities[0:2])
print(cities[‘City name‘][1])

# ### 操控数据
print(population / 1000)  # 可以向Series应用Python的基本运算指令
print(np.log(population))  # Series对象可用作大多数NumPy函数的参数
print(population.apply(lambda val: val > 1000000))  # 创建一个population是否超过100万的新Series对象
# 使用Series.apply进行复杂的单列转换,Series.apply将以参数形式接受 lambda 函数,而该函数会应用于每个值
cities[‘Area square miles‘] = pd.Series([46.87, 176.53, 97.92])  # 向现有DataFrame添加Series
cities[‘Population density‘] = cities[‘Population‘] / cities[‘Area square miles‘]  # 添加Series
cities[‘wide_saint‘] = (cities[‘Area square miles‘] > 50)                                        & cities[‘City name‘].apply(lambda name: name.startswith(‘San‘))  # 添加Series
# 注意:布尔值Series是使用“按位”而非传统布尔值“运算符”组合的,因此执行逻辑与时,应使用&,而不是and
print(cities)

# ### 索引
# 文档:http://pandas.pydata.org/pandas-docs/stable/indexing.html#index-objects
# Series和DataFrame对象定义了index属性,该属性会向每个Series项或DataFrame行赋一个标识符值
# 默认情况下,在构造时,pandas会赋可反映源数据顺序的索引值
# 索引值在创建后是稳定的,不会因为数据重新排序而发生改变
print(city_names.index)
print(cities.index)
# reindex方法
# 文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reindex.html
print(cities.reindex([2, 0, 1]))  # 调用DataFrame.reindex来手动重新排列各行的顺序
cities.reindex(np.random.permutation(cities.index))  # 将cities.index传递至NumPy的random.permutation函数,随机排列其值的位置
print(cities)
# reindex方法允许使用未包含在原始DataFrame索引值中的索引值,reindex会为此类“丢失的”索引添加新行,并在所有对应列中填充NaN值
print(cities.reindex([0, 4, 5, 2]))

 

AI - MLCC - 04 - 使用TF的基本步骤02 - Pandas 简介

原文:https://www.cnblogs.com/anliven/p/10264475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!