pandas介绍

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
它是使Python成为强大而高效的数据分析环境的重要因素之一。

pandas基础

import pandasfood_info=pandas.read_csv("food_info.csv")
print(type(food_info))
print(food_info.dtypes)print(food_info.head(3))
print(food_info.tail(4))
print(food_info.columns)
print(food_info.shape)

打开一个文件:

food_info=pandas.read_csv("food_info.csv")

文件截图:

打印它的类型:

print(type(food_info))


打印每一列的类型:

print(food_info.dtypes)


打印头三行和尾四行:

print(food_info.head(3))
print(food_info.tail(4))


打印所有的列标题和文件规模:

print(food_info.columns)
print(food_info.shape)


(8618表示样本,即行,36表示指标,即列)

打印第一行:

print(food_info.loc[0])


切片操作:

print(food_info.loc[3:6])


取出某一列值要根据列名:

ndb_col=food_info["NDB_No"]
print(ndb_col)



取出某几列的值,同样也是根据列名:

columns=["Shrt_Desc","Water_(g)"]
zinc_copper=food_info[columns]
print(zinc_copper)



取出指定列的内容(以g为单位的列):

col_names=food_info.columns.tolist()
print(col_names)
gram_columns=[]
for c in col_names:if c.endswith("(g)"):gram_columns.append(c)
gram_df=food_info[gram_columns]
print(gram_df.head(3))

先用一个列表存储以g为单位的列名,然后打印前三行数据

找到相应的列并对列中所有的数据进行四则运算:

print(food_info["Iron_(mg)"])
div_1000=food_info["Iron_(mg)"]/1000
print(div_1000)


将某两列中的数据进行乘法运算以及创建一个新的列:

water_energy=food_info["Water_(g)"]*food_info["Energ_Kcal"]
iron_grams=food_info["Iron_(mg)"]/1000
print(food_info.shape)
food_info["Iron_(g)"]=iron_grams
print(food_info.shape)


将数据进行升序和降序排列:

food_info.sort_values("Sodium_(mg)",inplace=True)
print(food_info["Sodium_(mg)"])
food_info.sort_values("Sodium_(mg)",inplace=True,ascending=False)
print(food_info["Sodium_(mg)"])





某一列中的 NaN (not a number)值:
打印前十行:

age=titanic_survival["Age"]
print(age.loc[0:10])


判断是否为NaN值:

age_is_null=pd.isnull(age)
print(age_is_null)


打印所有值为NaN的行号:

age_null_true=age[age_is_null]
print(age_null_true)


统计为NaN的行数:

age_null_count=len(age_null_true)
print(age_null_count)


如果直接计算平均年龄:

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)


其实在pandas中有内置的去除NaN值后计算的方法:

correct_mean_age=titanic_survival["Age"].mean()
print(correct_mean_age)

两次结果一致

计算不同等级船舱的票价:

passenger_classes=[1,2,3]
fares_by_class={}
for this_class in passenger_classes:pclass_rows=titanic_survival[titanic_survival["Pclass"]==this_class]pclass_fares=pclass_rows["Fare"]fare_for_class=pclass_fares.mean()fares_by_class[this_class]=fare_for_class
print(fares_by_class)


计算相关关系(数据透视表):

passenger_survial=titanic_survival.pivot_table(index="Pclass",values="Survived",aggfunc=np.mean)
print(passenger_survial)passenger_age=titanic_survival.pivot_table(index="Pclass",values="Age")
print(passenger_age)port_stats=titanic_survival.pivot_table(index="Embarked",values=["Fare","Survived"],aggfunc=np.sum)
print(port_stats)


去掉缺失值:

drop_na_columns=titanic_survival.dropna(axis=1)
new_titanic_survival=titanic_survival.dropna(axis=0,subset=["Age","Sex"])
print(new_titanic_survival)


根据索引找到相应的值:

row_index_83_age=titanic_survival.loc[83,"Age"]
row_index_1000_pclass=titanic_survival.loc[766,"Pclass"]
print(row_index_83_age)
print(row_index_1000_pclass)


排序:

new_titanic_survival=titanic_survival.sort_values("Age",ascending=False)
print(new_titanic_survival[0:10])
titanic_reindexed=new_titanic_survival.reset_index(drop=True)
print(titanic_survival.loc[0:10])



定义一个函数,找到第100个值:

def hundredth_row(columns):hundredth_item=columns.loc[99]return hundredth_itemhundredth_row=titanic_survival.apply(hundredth_row)
print(hundredth_row)


定义一个函数,统计缺失值:

def not_null_count(column):column_null=pd.isnull(column)null=column[column_null]return len(null)column_null_count=titanic_survival.apply(not_null_count)
print(column_null_count)


定义一个函数,对数据进行整体转换:

def which_class(row):pclass=row['Pclass']if pd.isnull(pclass):return "Unknown"elif pclass==1:return "First Class"elif pclass==2:return "Second Class"elif pclass==3:return "Third Class"classes=titanic_survival.apply(which_class,axis=1)
print(classes)



定义一个函数,判断是否成年:

def is_minor(row):if row["Age"]<18:return Trueelse:return Falseminors=titanic_survival.apply(is_minor,axis=1)
print(minors)


定义一个函数,根据年龄返回相应值:

def generate_age_label(row):age=row["Age"]if pd.isnull(age):return "unknown"elif age<18:return "minor"else:return "adult"age_labels=titanic_survival.apply(generate_age_label,axis=1)
print(age_labels)

01、python数据分析与机器学习实战——python数据分析处理库-Pandas相关推荐

  1. 01、python数据分析与机器学习实战——Python数据可视化库-Matplotlib

    Matplotlib介绍 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. Matplotlib基础 1.折线图绘制 假设,我 ...

  2. 01、python数据分析与机器学习实战——Python科学计算库-Numpy

    深度学习--学习目录 NumPy介绍 NumPy系统是Python的一种开源的数值计算扩展. 这种工具可用来存储和处理大型矩阵, 比Python自身的嵌套列表(nested list structur ...

  3. 01、python数据分析与机器学习实战——Python可视化库Seaborn

    seaborn简介 Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图. seaborn基础 i ...

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

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

  5. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  6. 【Python】基于机器学习的财务数据分析——识别财务造假

    [Python]基于机器学习的财务数据分析--识别财务造假 前言: 本文数据使用了2021泰迪杯官方给出的数据. 其中第一章的代码给出了如何由比赛数据生成案例分析所使用的数据 而第二章则重点介绍了 如 ...

  7. 数据分析与机器学习实战(一)——机器学习基础

    数据分析与机器学习实战(一)--机器学习基础 数据分析与机器学习实战(二)--聚类分析(以K-means聚类为例) 文章目录 数据分析与机器学习实战(一)--机器学习基础 数据分析与机器学习实战(二) ...

  8. 跟着迪哥学python 经管之家_跟着迪哥学Python数据分析与机器学习实战

    本书结合了机器学习.数据分析和Python语言,通过案例以通俗易懂的方式讲解了如何将算法应用到实际任务. 全书共20章,大致分为4个部分.第一部分介绍了Python的工具包,包括科学计算库Numpy. ...

  9. 大数据分析与机器学习领域Python兵器谱

    曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...

最新文章

  1. MySQL innodb_autoinc_lock_mode 详解
  2. 万万没想到,1200 年前老祖宗们就知道大数据了
  3. mysql通用查询日志_MySQL通用查询日志(GeneralQueryLog)_MySQL
  4. SpringBoot2.0新特性 - Quartz自动化配置集成
  5. java递归基本结构_JAVA学习入门篇_递归结构
  6. 肝!计算机网络基础知识总结
  7. Angular Shadow Root DOM的一些API
  8. java学习(4):第一个java程序
  9. php 系统环境变量引用,PHP 系统变量 环境变量
  10. IOS 单行文本输入框 UITextField 使用
  11. Kerberos:cannot get master principle
  12. linux配置https
  13. 游戏王血计算机,【统计】历代主角控血一览
  14. hive中如何把13位转化为时间_【hive常用函数一】日期函数
  15. PHP技巧:PATH_SEPARATOR是什么(Zend Framework引导文件中的路径用法)
  16. Android apk系列1-------APK签名
  17. spss登录本地计算机,SPSS基本使用
  18. 树莓派4 PWM控制风扇转速
  19. python中输入字符串_python如何输入字符串
  20. 最详BF算法和KMP算法

热门文章

  1. [c/c++] programming之路(7)、数据类型转换、偷钱小程序、进制转换
  2. C#操作Excel(读取)
  3. usaco1.4.4(milk3)
  4. oracle主备库查询,oracle11g dataguard 备库数据同步的检查方法
  5. 浏览器工作原理与实践学习笔记
  6. Oracle与mongodb的区别
  7. C语言学习之有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
  8. Linux 内核 up down,信号量机制中的DOWN操作与UP操作详解
  9. 三态门三个状态vhdl_人防门是什么?为什么会侵线导致重庆地铁事故
  10. 搜狗2012.9.23校园招聘会笔试题