Pandas库的介绍
Pandas是一个开放源码的Python库,它使用强大的数据结构提供高性能的数据操作和分析工具。Pandas的主要特点:
快速高效的DataFrame对象,具有默认和自定义的索引。
将数据从不同文件格式加载到内存中的数据对象的工具。
丢失数据的数据对齐和综合处理。
重组和摆动日期集。
基于标签的切片,索引和大数据集的子集。
可以删除或插入来自数据结构的列。
按数据分组进行聚合和转换。
高性能合并和数据加入。
时间序列功能。
常用方法
csv文件下载 密码:m8af
import pandas as pd
# 读取一个csv文件,转换成food_info对象
food_info = pd.read_csv('food_info.csv')
# 输出每一列的dtype类型
food_info.dtypes
# 输出对象的前3行,不指定默认为前5行
food_info.head(3)
# 输出对象的后3行,不指定默认为后5行
food_info.tail(3)
# 查看对象的形状\维度
food_info.shape
# 根据索引号获取第一行的数据
food_info.loc[0]
# 根据切片获取指定行数数据
food_info.loc[3:8]
# 根据列名取一列数据,列名是csv文件中的第一行
food_info['Shrt_Desc']
# 判断是否缺失 nan,值是否为空返回一个布尔值列表
# 对缺失值的处理方式:可以直接去除、 或者填充当前列的平均值,补充为完整的样本
pd.isnull(food_info)
pd.isnull(food_info['Shrt_Desc'])
# 定义一个list,根据这个list可以取多列
columns = ['NDB_No', 'Shrt_Desc']
food_info[columns]
# 获取对象中的所有列名,并将列名转换为list
info_columns = food_info.columns
columns_list = info_columns.tolist()
# 获取对象中所有列名以(g)单位为结尾的列,并且回传到food_info,使g_food_info只包含以(g)结尾的列
g_columns = []
for cin columns_list:
# 转不转成string都可以,因为ide不知道c的类型,自动补齐方法永不了,所以我手动转成string
c =str(c)
if c.endswith('(g)'):
g_columns.append(c)
g_food_info = food_info[g_columns]
# 加减乘除:所有项都乘1000
iron_mg_column = food_info['Iron_(mg)']
iron_mg_column = iron_mg_column *1000
# 加减乘除:如果是相同维度,则会计算相同的位置
iron_mg_columns = food_info['Iron_(mg)'] * food_info['Calcium_(mg)']
# 像food_info中传入新的一列,指定列名和数据,此时foodinfo维度也会发生改变
food_info['abcd'] = iron_mg_columns
# 最大值、最小、求和之类的操作也和numpy差不多
food_info['Iron_(mg)'].max
food_info['Iron_(mg)'].min
food_info['Iron_(mg)'].sum
# 将列进行排序
# inplace:是否在原对象food_info上作出改变,如果为false,food_info中只有'Water_(g)'进行排序。如果是true,整个food_info的所有列都根据'Water_(g)'进行排序
# ascending:false为降序,true为升序(升序为默认值,所以可以省略)
values = food_info.sort_values('Water_(g)', inplace=True, ascending=False)