测试数据 titanic_train.csv


isnull

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# Pandas库使用NaN(非数字)表示缺失值
# 我们可以使用pandas.isnull()函数,它获取一个pandas series并返回一系列的True和False
age = titanic_survival["Age"]
# 使用loc获取的数据时的切片,包括两端的索引对应的数据
print(age.loc[0:6])
print("--------------------------")
age_is_null = pandas.isnull(age)
# 对普通列表数据的切片,不包括右端的索引对应的数据
print(age_is_null[0:6])
print("--------------------------")
print(type(age_is_null))
print("--------------------------")
print(len(age), len(age_is_null))


nan

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# 其结果是mean_age将是nan。这是因为我们对空值所做的任何计算都会得到空值
age = titanic_survival["Age"]
print(sum(age))
print("--------------------------")
mean_age = sum(age) / len(age)
print(mean_age)
print("--------------------------")
# 在计算平均值之前,我们必须过滤掉遗漏的值
age_is_null = pandas.isnull(age)
good_ages = age[age_is_null == False]
correct_mean_age = sum(good_ages) / len(good_ages)
print(correct_mean_age)
print("--------------------------")
# 丢失的数据是如此常见,以至于许多pandas方法会自动为其过滤
correct_mean_age = age.mean()
print(correct_mean_age)


mean

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# 每节课平均票价
passenger_classes = [1, 2, 3]
fares_by_class = {}
for this_class in passenger_classes:# 获取所有满足titanic_survival["Pclass"] == this_class 的数据pclass_rows = titanic_survival[titanic_survival["Pclass"] == this_class]# 获取符合this_class的数据的Fare列pclass_fares = pclass_rows["Fare"]# 求平均数并赋值到字典中fares_by_class[this_class] = pclass_fares.mean()
print(fares_by_class)


pivot_table

import pandas
import numpytitanic_survival = pandas.read_csv("titanic_train.csv")
# pivot_table 创建一个电子表格样式的数据透视表。pivot表中的级别将存储在结果DataFrame的索引和列上的多索引对象(层次索引)中
#   index  告诉方法按哪个列分组
#   values 是我们要应用计算的列(可选地聚合列)
#   aggfunc 指定我们要执行的计算 default numpy.mean 沿着指定的轴计算算术平均数
passenger_survival = titanic_survival.pivot_table(index="Pclass", values="Survived", aggfunc=numpy.mean)
print(passenger_survival)
print("------------------------")
passenger_age = titanic_survival.pivot_table(index="Pclass", values="Age")
print(passenger_age)
print("------------------------")
port_stats = titanic_survival.pivot_table(index="Embarked", values=["Fare", "Survived"], aggfunc=numpy.sum)
print(port_stats)

import pandasdef generate_age_label(row):age = row["Age"]if pandas.isnull(age):return "unknown"elif age < 18:return "minor"else:return "adult"titanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
age_labels = titanic_survival.apply(generate_age_label, axis=1)
titanic_survival['age_labels666'] = age_labels
age_group_survival = titanic_survival.pivot_table(index="age_labels666", values="Survived")
print(age_group_survival)


dropna

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# dropna 删除缺失值
#   axis = 0或'index': 删除包含缺失值的行
#   axis = 1或'columns': 删除包含缺失值的列
#   subset 像数组一样,可选的标签沿着要考虑的其他轴,例如,如果要删除行,这些将是要包含的列的列表。
#   how : {'any', 'all'}
#           'any' : 如果存在任何NA值,删除该行或列。
#           'all' : 如果所有值都是NA,则删除该行或列。
drop_na_columns = titanic_survival.dropna(axis=1)
print(drop_na_columns[0:3])
print("-------------------------------------------")
new_titanic_survival = titanic_survival.dropna(axis=0, subset=["Age", "Sex"])
print(len(new_titanic_survival))
print("-------------------------------------------")
print(new_titanic_survival[0:3])


loc

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# 获取第84行数据的Age列的值 (loc索引下标从0开始)
row_index_83_age = titanic_survival.loc[83, "Age"]
# 获取第767行数据的Pclass列的值 (loc索引下标从0开始)
row_index_766_pclass = titanic_survival.loc[766, "Pclass"]
print(row_index_83_age)
print(row_index_766_pclass)


reset_index

import pandastitanic_survival = pandas.read_csv("titanic_train.csv")
# 按照Age列进行升序排序
new_titanic_survival = titanic_survival.sort_values("Age", ascending=False)
print(new_titanic_survival[0:3])
print("-------------------------------")
# reset_index 对于具有多层索引的DataFrame,返回新的DataFrame,并在索引名下的列中标记信息,
#               如果没有,默认为'level_0'、'level_1'等。
#               对于标准索引,将使用索引名称(如果设置),
#               否则将使用默认的“index”或“level_0”(如果已经使用了“index”)。
# drop : boolean, default False 不要尝试在dataframe列中插入索引。这会将索引重置为默认整数索引。
titanic_reindexed = new_titanic_survival.reset_index(drop=True)
titanic_reindexed2 = new_titanic_survival.reset_index()
print(titanic_reindexed2.iloc[0:3])
print("-------------------------------")
print(titanic_reindexed.iloc[0:3])


apply

import pandasdef hundredth_row(column):# 提取第100项hundredth_item = column.iloc[99]return hundredth_itemtitanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
hundredth_data = titanic_survival.apply(hundredth_row)
print(hundredth_data)

import pandasdef not_null_count(column):column_null = pandas.isnull(column)null = column[column_null]return len(null)titanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
column_null_count = titanic_survival.apply(not_null_count)
print(column_null_count)

import pandasdef which_class(row):pclass = row['Pclass']if pandas.isnull(pclass):return "Unknown"elif pclass == 1:return "First Class"elif pclass == 2:return "Second Class"elif pclass == 3:return "Third Class"titanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
classes = titanic_survival.apply(which_class, axis=1)
print(classes)

import pandasdef is_minor(row):if row["Age"] < 18:return Trueelse:return Falsetitanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
minors = titanic_survival.apply(is_minor, axis=1)
print(minors)

import pandasdef generate_age_label(row):age = row["Age"]if pandas.isnull(age):return "unknown"elif age < 18:return "minor"else:return "adult"titanic_survival = pandas.read_csv("titanic_train.csv")
# 从每列返回第100项
# apply 沿着DataFrame的轴应用一个函数。
# axis : {0 or 'index', 1 or 'columns'}, default 0
#       0 or 'index': apply function to each column. 每列
#       1 or 'columns': apply function to each row. 每行
age_labels = titanic_survival.apply(generate_age_label, axis=1)
print(age_labels)


004.python科学计算库pandas(中)相关推荐

  1. 005.python科学计算库pandas(下)

    测试数据 fandango_score_comparison.csv series import pandas as pd from pandas import Seriesfandango = pd ...

  2. 【A-003】python数据分析与机器学习实战 Python科学计算库 Pandas数据分析处理库(二)

    目录: 处理缺失数据制作透视图删除含空数据的行和列多行索引使用apply函数 本节要处理的数据来自于泰坦尼克号的生存者名单,它的数据如下: PassengerId Survived Pclass .. ...

  3. Python科学计算库 — Pandas数学统计方法

    首先导入pandas库 import numpy as np import pandas as pd Pandas 常用的数学统计方法如下表: 方法 说明 count 计算非NA值的数量 descri ...

  4. Python科学计算库numpy中的add运算

    闲言碎语不多讲,直接上代码. >>> import numpy as np >>> np.add.accumulate([1,2,3]) # 累加 array([1 ...

  5. Python科学计算库核心知识点总结_代码篇(ML/DL依赖语法)

    Python科学计算库核心知识点总结_代码篇(ML/DL依赖语法)                                                                    ...

  6. Python科学计算之Pandas基础学习

    Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...

  7. 初识 Python 科学计算库之 NumPy(创建多维数组对象)

    文章目录 参考 描述 NumPy 特点 获取 导入 多维数组对象 np.array() np.asarray() 范围 随机 概览 np.random.randn() np.random.normal ...

  8. 一文带你熟悉简单实用的Python科学计算库NumPy

    Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...

  9. python科学计算库-数值计算库与科学计算库

    BLAS 接口 BLAS , LAPACK , ATLAS 这些数值计算库的名字很类似,他们之间有什么关系呢?BLAS是一组线性代数运算接口,目前是事实上的标准,很多数值计算/科学计算都实现了这套接口 ...

最新文章

  1. 软件项目管理0713:三级等保的重要性
  2. 深入理解及配置ISA Server 2006访问规则
  3. canvas特效代码详解(2)
  4. git rollback代码都没了_git回滚线上代码
  5. 【C++基础】STL迭代器
  6. Entity Framework在WCF中序列化的问题(转)
  7. 设计模式的功力长了!
  8. R语言快速学习第二部分(有其他语言基础)
  9. Uploadify 3.2 参数属性、事件、方法函数详解以及配置
  10. mysql2014安装文档_hive安装文档
  11. JNI编程中数据类型转换的方法
  12. c语言给定n个矩形及其长和宽,七年级数学秋季学期期末考试试题
  13. 计算机软件专业毕业论文题目,★计算机软件专业论文题目_计算机软件专业毕业论文题目大全_计算机软件专业论文选题参考...
  14. 2008服务器远程开启,windows server 2008 r2中开启远程桌面的方法
  15. 你会卖掉自己的网上信息吗?大数据可能根本不属于你
  16. 利用Python库中的imageio生成GIF格式的动图
  17. python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)
  18. 既然Talk is cheap, 那么就用代码教你如何进行正交设计
  19. unity怎么导入系统的树_Unity5.0_树_软件教程_资源库
  20. 华为新系统鸿蒙开机图标,华为鸿蒙2.0正在揭开神秘面纱,开机界面大变

热门文章

  1. 一个小巧,也很nice的“小日历”--一个Android App
  2. Micropython史上最友好的编辑器,小巧精悍
  3. OSChina 周五乱弹 ——我的胸,我也找了二十多年了
  4. 树或者二叉树的度怎么算??
  5. Velodyne已出货的激光雷达传感器价值达5亿美元
  6. 股市风暴下的雪球架构改造经验分享
  7. 两种红外对管的区别——基于硬件中断(外部中断)测距避障
  8. QCustomPlot常用操作
  9. android中64位手机,我们需要64位Android手机吗?
  10. 避震方法最新自救建议:不要躲在桌子下