Python Pandas 数据处理实战:订单数据分析与操作
Python Pandas 数据处理实战:订单数据分析与操作
本文将使用 Python Pandas 库对一个订单数据进行处理,涵盖数据创建、查看、统计、添加、删除、重命名、填充缺失值、排序、归一化等操作,并结合实际场景进行分析。
1. 数据准备
首先,我们定义一个包含订单信息的字典 data:
data = {'订单号': ['D001', 'D002', 'D003', 'D004'], '设备 ID': ['E1', 'E2', 'E3', 'E4'], '购买数量': [1, 3, 7, 9], '应付金额': [3.5, 4.5, 5, np.nan], '商品名称': ['可乐', '营养快线', '八宝粥', '酸奶'], '支付时间': ['2020-1-2', '2020-2-3', '2020-3-4', '2020-4-5'], '地点': ['A', 'B', 'C', 'D'], '支付方式': ['微信', '现金', '支付宝', '微信']}
2. 创建 DataFrame
使用 pandas.DataFrame() 函数将 data 字典转换为 DataFrame:
import pandas as pd
# 创建 DataFrame
order_df = pd.DataFrame(data)
3. 查看数据行列数
使用 shape 属性查看数据行列数:
# 查看数据行列数
print(order_df.shape)
4. 查看索引、数据类型和内存信息
使用 info() 方法查看索引、数据类型和内存信息:
# 查看索引、数据类型和内存信息
order_df.info()
5. 查看数值型数据的关键统计指标
使用 describe() 方法查看数值型数据的关键统计指标,例如平均数、中位数、标准差等:
# 查看数值型数据的关键统计指标
order_df.describe()
6. 添加新数据列:'支付方式'
使用 assign() 方法添加新数据列:
# 添加新数据列:'支付方式'
order_df = order_df.assign(支付方式=['微信', '现金', '支付宝', '微信'])
7. 添加新列:'总金额'
使用 assign() 方法添加新列,并通过 购买数量 与 应付金额 计算得出:
# 添加新列:'总金额'
order_df = order_df.assign(总金额=order_df['购买数量'] * order_df['应付金额'])
8. 删除设备 ID 数据列
使用 drop() 方法删除 '设备 ID' 数据列:
# 删除设备 ID 数据列
order_df = order_df.drop('设备 ID', axis=1)
9. 重命名数据列 '总金额' 为 '合计'
使用 rename() 方法重命名数据列:
# 重命名数据列 '总金额' 为 '合计'
order_df = order_df.rename(columns={'总金额': '合计'})
10. 添加一行数据
使用 append() 方法添加一行数据:
# 添加一行数据
new_row = pd.DataFrame({'订单号': ['D005'], '购买数量': [2], '应付金额': [3], '商品名称': ['可乐'], '支付时间': ['2020-5-20'], '地点': ['A'], '支付方式': ['现金'], '合计': [10]})
order_df = order_df.append(new_row, ignore_index=True)
11. 提取含有字符串'可乐'的行
使用布尔索引提取含有字符串'可乐'的行:
# 提取含有字符串'可乐'的行
coke_orders = order_df[order_df['商品名称'] == '可乐']
print(coke_orders)
12. 将订单表中的数据进行降维,去除支付时间和地点
使用 drop() 方法去除 '支付时间' 和 '地点' 数据列:
# 去除支付时间和地点数据列
order_df = order_df.drop(['支付时间', '地点'], axis=1)
13. 统计支付方式列中每种支付方式出现的次数
使用 value_counts() 方法统计支付方式列中每种支付方式出现的次数:
# 统计支付方式列中每种支付方式出现的次数
payment_counts = order_df['支付方式'].value_counts()
print(payment_counts)
14. 检查数据中是否含有任何缺失值
使用 isnull() 方法检查数据中是否含有任何缺失值:
# 检查数据中是否含有任何缺失值
print(order_df.isnull().any())
15. 将空值用前一行的值进行向前填充
使用 fillna() 方法将空值用前一行的值进行向前填充:
# 将空值用前一行的值进行向前填充
order_df = order_df.fillna(method='ffill')
16. 按照商品名称列进行去除重复值,并替换原数据中内容:的商品名称列
使用 drop_duplicates() 方法去除重复值,并使用 update() 方法替换原数据中内容:的商品名称列:
# 按照商品名称列进行去除重复值,并替换原数据中内容:的商品名称列
unique_products = order_df['商品名称'].drop_duplicates()
order_df['商品名称'].update(unique_products)
17. 按照订单号列进行升序排序
使用 sort_values() 方法按照 '订单号' 列进行升序排序:
# 按照订单号列进行升序排序
order_df = order_df.sort_values(by='订单号', ascending=True)
18. 按照应付金额列进行降序排序
使用 sort_values() 方法按照 '应付金额' 列进行降序排序:
# 按照应付金额列进行降序排序
order_df = order_df.sort_values(by='应付金额', ascending=False)
19. 将购买数量列进行归一化处理
使用 MinMaxScaler() 方法将 '购买数量' 列进行归一化处理:
from sklearn.preprocessing import MinMaxScaler
# 将购买数量列进行归一化处理
scaler = MinMaxScaler()
order_df['购买数量'] = scaler.fit_transform(order_df[['购买数量']])
20. 将应付金额列中的缺失值用该列的平均值进行填充
使用 fillna() 方法将 '应付金额' 列中的缺失值用该列的平均值进行填充:
# 将应付金额列中的缺失值用该列的平均值进行填充
order_df['应付金额'] = order_df['应付金额'].fillna(order_df['应付金额'].mean())
21. 将支付时间列转换为日期类型
使用 to_datetime() 方法将 '支付时间' 列转换为日期类型:
# 将支付时间列转换为日期类型
order_df['支付时间'] = pd.to_datetime(order_df['支付时间'])
总结
本教程展示了如何使用 Python Pandas 库对一个订单数据进行处理,涵盖数据创建、查看、统计、添加、删除、重命名、填充缺失值、排序、归一化等操作,并结合实际场景进行分析。希望本教程能够帮助您更好地理解和应用 Pandas 库进行数据处理。
原文地址: https://www.cveoy.top/t/topic/nv8X 著作权归作者所有。请勿转载和采集!