二、pandas学习
1.food.csv
============================================================================================
import pandas
food_info = pandas.read_csv("food_info.csv")#object就是string类型
print(type(food_info))#DataFrame
print(food_info.dtypes)
print(help(pandas.read_csv))
==============
输出:
NDB_No int64
Shrt_Desc object
Water_(g) float64
Energ_Kcal int64
Protein_(g) float64
.........
============================================================================================
food_info.head(3)#默认显示前五行数据,颗根据参数选择
food_info.tail()#末尾几行
print(food_info.columns)#列名
print(food_info.shape)#(8618, 36)
==============
输出:
Index(['NDB_No', 'Shrt_Desc', 'Water_..........]
============================================================================================
#取数据
print(food_info.loc[2])#打印第3行数据
print(food_info.loc[2:3])#打印2到3行
print(food_info.loc[[2,3,5]])#打印第2/3/5行数据
============================================================================================
#按列取数据 如果去两列,就写两个列名,用,隔开
#ndb_col = food_info["NDB_No"]#取列数据
#print(ndb_col)
col_name = "NDB_No"
print(food_info["NDB_No"])#打印出"NDB_No”的列项
print(food_info.shape)
#对所有的列元素操作
print(food_info["NDB_No"]/1000)
#对应元素的运算 water_energy = food_info["Water_(g)"]*food_info["Energ_Kcal"]
iron_gram = food_info["Iron_(mg)"]/1000
food_info["Iron_(temg)"] = iron_gram#增加了一列数据 ,增加前是36列 增加后变成37列
print(food_info.shape)
max_Water = food_info["Iron_(mg)"].max()#取这一列的最大值
print(max_Water)
==============
输出:
0 1001
1 1002
2 1003
3 1004
....................
=========================================================================================
col_names = food_info.columns.tolist()#取所有列名
print(col_names)
gram_columns = [] for c in col_names:
if c.endswith("(g)"):
gram_columns.append(c)#存储以g为结尾的列名
print("====================")
print(gram_columns)
print("====================")
gram_df = food_info[gram_columns]
print(gram_df.head(3))
输出:
['NDB_No', 'Shrt_Desc', 'Water_(g)', 'Energ_Kcal', 'Protein_(g)', 'Lipid_Tot_(g)', 'Ash_(g)', 'Carbohydrt_(g)', 'Fiber_TD_(g)', 'Sugar_Tot_(g)', 'Calcium_(mg)', 'Iron_(mg)', 'Magnesium_(mg)', 'Phosphorus_(mg)', 'Potassium_(mg)', 'Sodium_(mg)', 'Zinc_(mg)', 'Copper_(mg)', 'Manganese_(mg)', 'Selenium_(mcg)', 'Vit_C_(mg)', 'Thiamin_(mg)', 'Riboflavin_(mg)', 'Niacin_(mg)', 'Vit_B6_(mg)', 'Vit_B12_(mcg)', 'Vit_A_IU', 'Vit_A_RAE', 'Vit_E_(mg)', 'Vit_D_mcg', 'Vit_D_IU', 'Vit_K_(mcg)', 'FA_Sat_(g)', 'FA_Mono_(g)', 'FA_Poly_(g)', 'Cholestrl_(mg)', 'Iron_(g)', 'Iron_(temg)']
====================
['Water_(g)', 'Protein_(g)', 'Lipid_Tot_(g)', 'Ash_(g)', 'Carbohydrt_(g)', 'Fiber_TD_(g)', 'Sugar_Tot_(g)', 'FA_Sat_(g)', 'FA_Mono_(g)', 'FA_Poly_(g)', 'Iron_(g)']
====================
Water_(g) Protein_(g) Lipid_Tot_(g) Ash_(g) Carbohydrt_(g) \
0 15.87 0.85 81.11 2.11 0.06
1 15.87 0.85 81.11 2.11 0.06
2 0.24 0.28 99.48 0.00 0.00 Fiber_TD_(g) Sugar_Tot_(g) FA_Sat_(g) FA_Mono_(g) FA_Poly_(g) Iron_(g)
0 0.0 0.06 51.368 21.021 3.043 0.00002
1 0.0 0.06 50.489 23.426 3.012 0.00016
2 0.0 0.00 61.924 28.732 3.694 0.00000
======================================================================================
#排序问题
food_info.sort_values("Water_(g)",inplace = True)#在原位置排序,从小到大排序,升序
print(food_info["Water_(g)"])
food_info.sort_values("Water_(g)",inplace = True,ascending=False)#在原位置排序,降序
print(food_info["Water_(g)"])
2.tatanic.csv
====================================================================================
import pandas as pd
import numpy as np
titanic_survival = pd.read_csv("titanic_train.csv")
titanic_survival.head()#默认打印5行 ================================================================================
age = titanic_survival["Age"]#定位到age
print(age.loc[0:5])#打印0--5的值
age_is_null = pd.isnull(age)
print(age_is_null)
print("===============")
age_null_true = age[age_is_null]
print(age_null_true)
======================
输出:
0 22.0
1 38.0
2 26.0
3 35.0
4 35.0
5 NaN
Name: Age, dtype: float64
0 False
1 False
2 False
3 False
4 False
5 True
6 False
............
=========================
5 NaN
17 NaN
19 NaN
26 NaN
================================================================================
mean_age = sum(titanic_survival["Age"])/len(titanic_survival[["Age"]])
print(mean_age)#当有缺失值的时候,无法进行计算
输出:
nan
================================================================================
good_ages = titanic_survival["Age"][age_is_null == False]#去掉缺失值
print(good_ages)
correct_mean_age = sum(good_ages)/len(good_ages)#求均值
print(correct_mean_age) correct_mean_age = titanic_survival["Age"].mean()#求均值
print(correct_mean_age)
================================================================================
#功能:计算每个等级的船舱的平均价位
passenger_class = [1,2,3]
fares_by_class = {}
for this_class in passenger_class:
plass_rows = titanic_survival[titanic_survival["Pclass"] == this_class]#保存一等船舱的数据
pclass_fares = plass_rows["Fare"]#取出数据中Fare列所有值
fare_for_class = pclass_fares.mean()#对所有数据求均值
fares_by_class[this_class] = fare_for_class#保存每个等级的均值
print(fares_by_class)
输出:
{1: 84.15468749999992, 2: 20.66218315217391, 3: 13.675550101832997}
================================================================================
passenger_survival = titanic_survival.pivot_table(index = "Pclass",values="Survived",aggfunc=np.mean)#index:统计的基准,value:index根什么有关系,
print(passenger_survival)
输出:
Survived
Pclass
1 0.629630
2 0.472826
3 0.242363
================================================================================
passenger_survival = titanic_survival.pivot_table(index = "Pclass",values=["Fare","Survived"],aggfunc=np.mean)
print(passenger_survival) 输出:
Fare Survived
Pclass
1 84.154687 0.629630
2 20.662183 0.472826
3 13.675550 0.242363
================================================================================
#缺失值丢掉
drop_na_columns = titanic_survival.dropna(axis=1)#对纵轴为空的列进行丢弃
print(drop_na_columns)
new_tatanic_survival = titanic_survival.dropna(axis=0,subset=["Age","Sex"])
print(new_tatanic_survival)
new_tanic_survival = titanic_survival.loc[83,"Pclass"]#找出某一个值
print(new_tanic_survival)
================================================================================
new_tatanic_survival = titanic_survival.sort_values("Age",ascending = False)
print(new_tatanic_survival[0:10])
re_tatanic_survival = new_tatanic_survival.reset_index(drop = True)#原来的index索引不要了,重新排
print(re_tatanic_survival)
================================================================================
#定义函数:返回第100行数据
def hundredth_row(column):
hundredth_item = column.loc[99]
# print(hundredth_item)
return hundredth_item
hundredth_row = titanic_survival.apply(hundredth_row)#调用函数 打印第一百行数据
print(hundredth_row)
二、pandas学习的更多相关文章
- Pandas学习(二)——双色球开奖数据分析
学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学习(四)–数据的归一化 pandas学习(五)–pa ...
- 【转】Pandas学习笔记(二)选择数据
Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...
- Pandas 学习笔记
Pandas 学习笔记 pandas 由两部份组成,分别是 Series 和 DataFrame. Series 可以理解为"一维数组.列表.字典" DataFrame 可以理解为 ...
- Python pandas学习总结
本来打算学习pandas模块,并写一个博客记录一下自己的学习,但是不知道怎么了,最近好像有点急功近利,就想把别人的东西复制过来,当心沉下来,自己自觉地将原本写满的pandas学习笔记删除了,这次打算写 ...
- pandas学习(数据分组与分组运算、离散化处理、数据合并)
pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...
- pandas学习(创建多层索引、数据重塑与轴向旋转)
pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或 ...
- pandas学习(创建数据,基本操作)
pandas学习(一) Pandas基本数据结构 Series类型数据 Dataframe类型 基本操作 Pandas基本数据结构 两种常用数据结构: Series 一维数组,与Numpy中的一维ar ...
- 18-09-27 pandas 学习02
如何系统的学习python 中有关数据分析和挖掘相关的库?什么是系统的学习?系统的学习就是一个先搭建只是框架体系,然后不断填充知识看,不断更新迭代的过程. Pandas,numpy,scipy,mat ...
- pandas学习(四)--数据的归一化
欢迎加入python学习交流群 667279387 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学习(四)–数据 ...
- Pandas学习(三)——NBA球员薪资分析
欢迎加入python学习交流群 667279387 学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学 ...
随机推荐
- kubernetes 基础知识
1. kubernetes 包含几个组件 Kubernetes是什么:针对容器编排的一种分布式架构,是自动化容器操作的开源平台. 服务发现.内建负载均衡.强大的故障发现和自我修复机制.服务滚动升级和在 ...
- Maven打包过程
1.安装maven 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven- ...
- Git命令之diff
工作区(working tree),暂存区(index /stage),本地仓库(repository) git跟不同的参数,比较不同的区间的版本. git diff:是查看working tree与 ...
- Prometheus监控告警浅析
前言 最近有个新项目需要搞一套完整的监控告警系统,我们使用了开源监控告警系统Prometheus:其功能强大,可以很方便对其进行扩展,并且可以安装和使用简单:本文首先介绍Prometheus的整个监控 ...
- 依赖注入DI(IOC)容器快速入门
1.什么是IOC IOC是一种设计模式,全程控制翻转或叫依赖注入.更详细介绍见http://martinfowler.com/articles/injection.html 2.为什么用IOC 我们通 ...
- 安装使用Pycharm及Anaconda最全教程
网上安装anaconda和pycharm的教程很多,然而很少有人能够很详细地讲解,特别是对于pycharm的虚拟环境相关的说明很少,我也是懵逼的用了两年多,经常发现之前pycharm安装的第三方库,明 ...
- 使用 .NET 5 体验大数据和机器学习
翻译:精致码农-王亮 原文:http://dwz.win/XnM .NET 5 旨在提供统一的运行时和框架,使其在各平台都有统一的运行时行为和开发体验.微软发布了与 .NET 协作的大数据(.NET ...
- Internet 网络协议族
1.linux目前支持多种协议族,每个协议族用一个net_porto_family结构实例来表示,在初始化时,会调用sock_register()函数初始化注册到net_families[NPROTO ...
- TCP协议原理与格式初探
目录 可靠数据传输原理 停等传输下的情况 1.经过完全可靠信道的可靠数据传输 2.经具有比特差错信道的可靠数据传输 3.经具有比特差错的丢包信道的可靠数据传输 流水线传输 1.回退N步(Go-Back ...
- Java的注释-标识符和关键字
1.Java注释 单行注释 多行注释 文档注释 代码示例 public class Hello{ public static void main(String[] args) { ...