赞
踩
对单列数据的访问:DataFrame 的单列数据为一个 Series。根据 DataFrame 的定义可以知晓 DataFrame 是一个带有标签的二维数组,每个标签相当每一列的列名。
有以下两种方式来实现对单列数据的访问。
以字典访问某一个 key 的值的方式使用对应的列名,实现单列数据的访问。
以属性的方式访问,实现单列数据的访问。(不建议使用,易引起混淆)
对某一列的某几行访问:访问 DataFrame 中某一列的某几行时,单独一列的 DataFrame可以视为一个 Series(另一种 pandas 提供的类,可以看作是只有一列的 DataFrame),而访问一个 Series 基本和访问一个一维的 ndarray 相同。
对多列数据访问:访问 DataFrame 多列数据可以将多个列索引名称视为一个列表,同时访问 DataFrame 多列数据中的多行数据和访问单列数据的多行数据方法基本相同。
head 和 tail 也可以得到多行数据,但是用这两种方法得到的数据都是从开始或者末尾获取的连续数据。默认参数为访问 5 行,只要在方法后方的“()”中填入访问行数即可实现目标行数的查看。
DataFrame.loc[行索引名称或条件, 列索引名称]
DataFrame.iloc[行索引位置, 列索引位置]
以菜品订单为例,利用 loc 获取 order_id='458’的所有菜名名称:
#loc 内部传入表达式
print(‘detail 中 order_id 为 458 的 dishes_name 为:\n’, detail.loc[detail[‘order_id’]==458, [‘order_id’,‘dishes_name’]])
若使用 detail.iloc[detail[‘order_id’]==‘458’,[1,5]]读取数据,则会报错,原因在于此处条件返回的为一个布尔值 Series,而 iloc 可以接收的数据类型并不包括 Series。根据 Series的 构 成 只 要 取 出 该 Series 的 values 就 可 以 了 。 需 改 为:
detail.iloc[(detail[‘order_id’]==‘458’).values,[1,5]])
import pandas as pd import numpy as np detail = pd.read_excel('meal_order_detail.xlsx') # loc result = detail.loc[detail['order_id']==137,['dishes_name','amounts']] print(result.head()) ''' dishes_name amounts 385 西瓜胡萝卜沙拉 26 386 麻辣小龙虾 99 387 农夫山泉NFC果汁100%橙汁 6 388 番茄炖牛腩\r\n 35 390 白饭/小碗 1 ''' result = detail.loc[detail['amounts']>100,['dishes_name']] print('菜品单价大于100元的数据:\n',result.head()) ''' 菜品单价大于100元的数据: dishes_name 11 芝士烩波士顿龙虾 12 葱姜炒蟹 53 红酒炖羊肉 65 倒立蒸梭子蟹 74 53度茅台 ''' # iloc # 格式:DataFrame.iloc[行索引位置, 列索引位置] print(detail.iloc[1,1])#417 print(detail.iloc[0:6,1:6]) ''' order_id dishes_id logicprn_name parent_class_name dishes_name 0 417 610062 NaN NaN 蒜蓉生蚝 1 417 609957 NaN NaN 蒙古烤羊腿 2 417 609950 NaN NaN 大蒜苋菜 3 417 610038 NaN NaN 芝麻烤紫菜 4 417 610003 NaN NaN 蒜香包 5 301 610019 NaN NaN 白斩鸡 '''
更改 DataFrame 中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。需要注意的是,数据更改直接针对 DataFrame 原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。
将 order_id 为 458 的,变换为 45800:
drop(labels, axis=0, level=None, inplace=False, errors=‘raise’)
常用参数如下所示:
1.数值型特征的描述性统计——NumPy 中的描述性统计函数:
2.数值型特征的描述性统计—— pandas 描述性统计方法
detail[[‘counts’,‘amounts’]].describe()
3.类别型特征的描述性统计:
描述类别型特征的分布状况,可以使用频数统计表。pandas 库中实现频数统计的方法为
value_counts。
pandas 提供了 categories 类,可以使用 astype 方法将目标特征的数据类型转换为 category类别。
describe 方法除了支持传统数值型以外,还能够支持对 category 类型的数据进行描述性统计,四个统计量分别为列非空元素的数目,类别的数目,数目最多的类别,数目最多类别的数目。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。