pandas是Python的扩展库(第三方库),为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。
pandas官方文档:User Guide — pandas 2.2.2 documentation (pydata.org)
帮助:可使用help(...)查看函数说明文档(若是第三方库的函数,需先导入库)。例如:help(pd.DataFrame)
补充:Series和DataFrame
- Series索引标签(label):Series中index的内容,可通过Series.index查看索引标签。
- Series索引位置(position):Series中index的隐藏下标,从0开始。
- DataFrame索引标签(label):DataFrame中行索引标签为index的内容,可通过DataFrame.index查看行索引标签。列索引标签为columns的内容(即列名),可通过DataFrame.columns查看列索引标签。
- DataFrame索引位置(position):DataFrame中index和columns的隐藏下标,都从0开始。
Python代码中,导入pandas:
import pandas as pd
(1)查看指定数据:head方法, tail方法, values属性
Series:
- Series.head():默认查看Series 前5个数据。
- Series.head(num):查看Series 前num个数据。
- Series.tail():默认查看Series 最后5个数据。
- Series.tail(num):查看Series 最后num个数据。
- Series.values:查看Series 所有数据。
DataFrame:
- DataFrame.head():默认查看DataFrame 前5行数据。
- DataFrame.head(num):查看DataFrame 前num行数据。
- DataFrame.tail():默认查看DataFrame 最后5行数据。
- DataFrame.tail(num):查看DataFrame 最后num行数据。
- DataFrame.values:查看DataFrame 所有数据。
(2)查看单个数据:at, iat
Series:
- Series.at(label):通过索引标签label查看单个数据。可赋值修改其数据。
- Series.iat(position):通过索引位置position查看单个数据。可赋值修改其数据。
DataFrame:
- DataFrame.at(行label, 列label):通过索引标签label从单行单列中查看单个数据。可赋值修改其数据。
- DataFrame.iat(行position, 列position):通过索引位置position从单行单列中查看单个数据。索引位置position从0开始。可赋值修改其数据。
(3)查看指定数据:loc, iloc
Series:
- Series.loc[label]:通过索引标签label查看数据。可赋值修改其数据。
- Series.loc[ [label1, label2, ...] ]:查看多个索引标签label对应的数据。
- Series.loc[ label1 : label2]:查看两个索引标签label之间的数据。若没有label1,则从第一个开始,若没有label2,则到最后一个。可赋值修改其数据。
- Series.iloc[position]:通过索引位置position查看数据。可赋值修改其数据。
- Series.iloc[ [position1, position2, ...] ]:查看多个索引位置position对应的数据。
- Series.iloc[ position1 : position2]:查看两个索引位置position之间的数据。若没有position1,则从第一个开始,若没有position2,则到最后一个。可赋值修改其数据。
- 注:索引位置position,从0开始。
- Series.loc[bool]:通过布尔列表/数组获取对应的数据。可赋值修改其数据。
- Series.iloc[bool]:通过布尔列表/数组获取对应的数据。可赋值修改其数据。
DataFrame:(loc)
- DataFrame.loc[行label]:查看行索引标签label的整行数据。
- DataFrame.loc[行label1 : 行label2]:查看行索引标签 label1到label2 之间连续的整行数据。若没有行label1,则从第一行开始,若没有行label2,则到最后一行。
- DataFrame.loc[ [行label1, 行label2, ...] ]:查看行索引标签 label1、label2...的整行数据。
- DataFrame.loc[ : , 列label]:查看列索引标签label的整列数据。
- DataFrame.loc[ : , 列label1 : 列label2]:查看列索引标签 label1到label2 之间连续的整列数据。若没有列label1,则从第一列开始,若没有列label2,则到最后一列。
- DataFrame.loc[ : , [列label1, 列label2, ...] ]:查看列索引标签 label1、label2...的整列数据。
- DataFrame.loc[行label, 列label]:查看行索引标签label、列索引标签label的单个数据。
- DataFrame.loc[ [行label1 , 行label2, ...], [列label1 , 列label2, ...] ]:查看行索引标签label1,label2...、列索引标签label1,label2...的数据。
- DataFrame.loc[行label1 : 行label2, 列label1 : 列label2]:查看行索引标签 label1到label2、列索引标签 label1到label2 的数据。若没有行label1则从第一行开始,若没有行label2则到最后一行,若没有列label1则从第一列开始,若没有列label2则到最后一列。
- DataFrame.loc[bool]:通过布尔列表/数组获取True的整行数据。
- DataFrame.loc[ : , bool]:通过布尔列表/数组获取True的整列数据。
- DataFrame.loc[bool, 列label相关]:通过布尔列表/数组获取True的行且部分列的数据。"列label相关":可以是单列、列表表示的多列、: 表示的连续的多列。
DataFrame.loc[...] 可修改数据。
DataFrame:(iloc)
- DataFrame.iloc[行position]:查看行索引位置position的整行数据。
- DataFrame.iloc[行position1 : 行position2]:查看行索引位置 position1到position2(不含)之间连续的整行数据。若没有行position1,则从第一行开始,若没有行position2,则到最后一行。
- DataFrame.iloc[ [行position1, 行position2, ...] ]:查看行索引位置position1,position2...的整行数据。
- DataFrame.iloc[ : , 列position]:查看列索引位置position的整列数据。
- DataFrame.iloc[ : , 列position1 : 列position2]:查看列索引位置 position1到position2(不含)之间连续的整列数据。若没有列position1,则从第一列开始,若没有列position2,则到最后一列。
- DataFrame.iloc[ : , [列position1, 列position2, ...] ]:查看列索引位置position1,position2...的整列数据。
- DataFrame.iloc[行position, 列position]:查看行索引位置position、列索引位置position的单个数据。
- DataFrame.iloc[ [行position1 , 行position2, ...], [列position1 , 列position2, ...] ]:查看行索引位置position1,position2...、列索引位置position1,position2...的数据。
- DataFrame.iloc[行position1 : 行position2, 列position1 : 列position2]:查看行索引位置position1到position2(不含)、列索引位置position1到position2(不含)的数据。若没有行position1则从第一行开始,若没有行position2则到最后一行,若没有列position1则从第一列开始,若没有列position2则到最后一列。
- 注:行/列索引位置position,都从0开始。
- DataFrame.iloc[bool]:通过布尔列表/数组获取True的整行数据。
- DataFrame.iloc[ : , bool]:通过布尔列表/数组获取True的整列数据。
DataFrame.iloc[...] 可修改数据。
补充:
DataFrame中loc和iloc共同点:
- DataFrame.loc[行标签, 列标签],DataFrame.iloc[行位置, 列位置]。都是 [ 行, 列 ]。
- 行/列都可以单个,也可以使用列表表示多个,也可以使用 : 表示连续行或列。也可以使用布尔列表/数组。
DataFrame中loc和iloc区别:
- loc通过行/列索引标签(label)获取数据。iloc通过行/列索引位置(position)获取数据。索引位置从0开始。
- : 连续行或列时,loc包含起始和结束标签的行/列。iloc包含起始行/列,不包含结束行/列。
(4)查看整列整行数据:[ ]
DataFrame.loc[...],DataFrame.iloc[...],都可以查看整列或整行数据。
- DataFrame[列label]:查看列索引标签label的整列数据。
- DataFrame[ [列label1, 列label2, ...] ]:查看列索引标签 label1、label2...的整列数据。
- DataFrame[行position1 : 行position2]:查看行索引位置position1到position2(不含)的整行数据。若没有行position1,则从第一行开始,若没有行position2,则到最后一行。索引位置position从0开始。
DataFrame[条件]:通过条件筛选数据。
DataFrame[...] 可修改数据。
(5)随机查看数据:sample
sample(self: 'NDFrameT', n: 'int | None' = None, frac: 'float | None' = None, replace: 'bool_t' = False, weights=None, random_state: 'RandomState | None' = None, axis: 'Axis | None' = None, ignore_index: 'bool_t' = False) -> 'NDFrameT'
- DataFrame.sample(num):默认axis=0,随机挑选num行数据。
- DataFrame.sample(num, axis=1):axis=1,随机挑选num列数据。
- DataFrame.sample(frac=指定权重, replace=True):默认axis=0,n=行数*权重(若n不为整数,向上取整),n次随机挑选1行数据。
- DataFrame.sample(frac=指定权重, replace=True, axis=1):axis=1,n=列数*权重(若n不为整数,向上取整),n次随机挑选1列数据。