1、数据结构
1.1 Series
Series可以看作是一维数组,由一组数据和索引构成,可以包含任何数据类型,通常用作DataFrame的单个列。
1.2 DataFrame
DataFrame可以看作是二维表格,由多行多列构成,每列都可以看作是一个Series。
2、数据校验
2.1 获取大小
#返回一个元组 (number of rows, number of columns)
DataFrame.shape
#返回行数
DataFrame.shape[0]
#返回列数
DataFrame.shape[1]
2.2 显示前n行或后n行
#返回前n行
DataFrame.head(n)
#如果n省略的话默认返回前5行
DataFrame.head()
#n可以自由取值,令n=3,返回前3行
DataFrame.head(3)
#返回后n行
DataFrame.tail(n)
#如果n省略的话默认返回后5行
DataFrame.head()
#n可自由取值,令n=6,返回后6行
DataFrame.head(6)
3、数据选取
数据选取可直接选取,或用loc或用iloc,loc基于标签,iloc基于整数
import pandas as pd
# 直接选取数据
df = pd.DataFrame({
'name':['xiaoming','xiaohong',xiaoqiang],
'age':[12,13,12],
'gender':['male','female','male']
})
# 选取单列数据
print(df['name'])
# 选取多列数据
print(df[['name','age']])
# 使用.loc选取数据,loc基于标签(行名或列名)选取数据,可用切片,左闭右闭
# 选取单行数据
print(df.loc[0]) # 若在df中有index=['x','y','z'],也可写print(df.loc(['x']))
# 选取连续多行数据
print(df.loc[0:2]) # 取行索引为0-2的数据
# 选取不连续多行数据
print(df.loc[[0,2]]) # 取行索引为0,2的数据
# 选择行和列
print(df.loc[[0,1], 'name']) # 取行索引为0,1列名为name的数据,也可用切片
# 使用.iloc选取数据,iloc基于位置(行号或列号)选取数据,可用切片,遵循左闭右开原则
# 选取单行数据
print(df.iloc[0]) # 取索引为0的数据
# 选取多行数据
print(df.iloc[1:3]) # 选取索引为1-2的数据
# 选取不连续多行数据
print(df.iloc[[0,1]]) # 选取第0行和第1行数据
# 选取行和列
print(df.iloc[[0,1], 0]) # 选取第0行和第1行,第0列,也可用切片
4、聚合操作
4.1 .agg()
.agg()用于对 DataFrame 或 Series 进行聚合操作。它可以同时对多列应用多种聚合函数,并返回一个汇总结果,通常是标量值、Series 或 DataFrame。
import pandas as pd
# 应用于Series
# 创建一个 Series
s = pd.Series([1, 2, 3, 4, 5])
# 应用单个聚合函数
print(s.agg('sum')) # 输出:15
# 应用多个聚合函数
print(s.agg(['sum', 'mean', 'max'])) # 输出:sum 15, mean 3.0, max 5
# 应用于DataFrame
# 创建一个 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
# 对每列应用单个聚合函数
print(df.agg('sum'))
# 输出结果:
A 6
B 15
dtype: int64
# 对每列应用多个聚合函数
print(df.agg(['sum', 'mean', 'max']))
# 输出
A B
sum 6.0 15.0
mean 2.0 5.0
max 3.0 6.0
# 对不同列应用不同的聚合函数
print(df.agg({'A': 'sum', 'B': ['min', 'max']}))
# 输出
A B
max NaN 6.0
min NaN 4.0
sum 6.0 NaN
实际应用场景:
# 数据汇总
df.agg(['sum', 'mean', 'std'])
# 分组聚合
df.groupby('Category').agg({'Value': ['sum', 'mean']})
# 多列不同聚合
df.agg({'A': 'sum', 'B': ['min', 'max']})