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 库进行数据处理。

Python Pandas 数据处理实战:订单数据分析与操作

原文地址: https://www.cveoy.top/t/topic/nv8X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录