Dataframe学习笔记:记录一下工作上使用的几种示例
Dataframe学习笔记:记录一下工作上使用的几种示例
- 0. 引言
- 1. Dataframe 简介
- 2. Dataframe 使用场景
- 3. 创建测试数据
- 4. 示例学习
- 5. 总结
0. 引言
最近工作上开发 AI 应用,经常使用到 Dataframe,所以整理和记录一下工作上使用的几种示例。
1. Dataframe 简介
Dataframe是Python库Pandas中一个强大的数据结构,用于存储和分析表格数据。它类似于Excel电子表格,但具有更强大的功能和灵活性。
Dataframe由行和列组成,类似于二维数组。每一列可以包含不同类型的数据,例如数字、字符串、日期等。Dataframe具有许多强大的功能,例如:
- 数据筛选和排序
- 数据清洗和转换
- 数据聚合和统计分析
- 数据可视化
2. Dataframe 使用场景
Dataframe广泛应用于各种数据分析领域,例如:
- 金融分析
- 市场营销
- 客户关系管理
- 风险管理
- 科学研究
3. 创建测试数据
为了更好地学习Dataframe,我们先来生成一套测试数据。假设我们有一份商品数据,包含以下字段:
- 商品名称
- 商品价格
- 商品库存
- 商品类别
我们可以使用以下代码生成测试数据:
import pandas as pd# 定义列名
column_names = ["商品名称", "商品价格", "商品库存", "商品类别"]# 生成测试数据
data = [["商品1", 100, , "类别1"],["商品2", 200, 20, ""],["商品3", 300, 30, "类别3"],
]# 创建Dataframe
df = pd.DataFrame(data, columns=column_names)# 打印Dataframe
print(df.to_string())
4. 示例学习
下面我们来学习三个示例。
示例1:数据预处理
该示例对数据进行了一些预处理,包括:
- 将列名转换为大写
- 将空值替换为0或“N/A”
- 计算数据数量
# 将列名映射为大写
column_names_map = {"商品名称": "PRODUCT","商品价格": "REVENUE_ESTIMATE_USD","商品库存": "NUM_OF_RESOURCE","商品类别": "CATEGORY",
}# 将指定列的值为空时,将该列变成 0
cols_to_zero = ["NUM_OF_RESOURCE"]
for col in cols_to_zero:df.loc[df[col].isnull(), col] = 0# 将指定列的空值替换为 "N/A"
cols_to_na = ["PRODUCT", "CATEGORY"]
for col in cols_to_na:df[col] = df[col].fillna("N/A")
# 计算数据数量
data_count = df.shape[0]
print(data_count)
示例2:数据筛选
该示例根据数据库中的数据筛选Dataframe。
# 从数据库中获取数据
new_data = [["商品3", 300, 30, "类别3"],["商品4", 400, 40, "类别4"],["商品5", 500, 50, "类别5"],
]
new_data_df = pd.DataFrame(new_data, columns=column_names)
# 将列名转换为英文
new_data_df.rename(columns=column_names_map, inplace=True)# 使用左连接找出new_data_df中独有的数据
diff = pd.merge(new_data_df, df, how='left', indicator=True).loc[
lambda x: x['_merge'] == 'left_only']# 移除_merge列,因为它不再需要了
left_data_df = diff.drop(columns=['_merge'])
print(left_data_df.to_string())
示例3:数据特征工程
该示例为Dataframe添加了两个新特征:
- 商品ID
- 商品描述
# 添加商品ID
df["商品ID"] = df.index + 1# 添加商品描述
df["商品描述"] = df["PRODUCT"].apply(lambda x: f"这是商品{x}的描述")
print(df.to_string())
5. 总结
Dataframe是数据分析的强大工具,可以帮助我们轻松完成各种数据处理任务。通过学习Dataframe,我们可以提高数据分析效率,从而做出更好的决策。
完结!