📜  python pandas系列到标题案例 - Python(1)

📅  最后修改于: 2023-12-03 15:34:03.188000             🧑  作者: Mango

Python Pandas系列到标题案例

简介

Pandas是一个基于NumPy的开源数据处理库,提供了高效数据操作功能,特别是可对表格型数据进行操作,包括增删改查等操作。本系列将介绍Pandas库的基本使用方法并附上一个实际的案例,帮助程序员学习如何使用这一强大的数据处理库。

Pandas基础
数据类型

Pandas有两种主要数据类型:Series和DataFrame。Series是一维的数据结构,类似于数组或列表,其中每一个元素都有一个标签(索引)。DataFrame则是二维的表格型数据结构,由多个Series组成,每个Series代表一列数据。

创建Series

可以通过使用Pandas的Series方法创建一个Series对象,如下所示:

import pandas as pd
my_series = pd.Series([10, 20, 30, 40, 50])
print(my_series)

输出结果为:

0    10
1    20
2    30
3    40
4    50
dtype: int64
创建DataFrame

使用Pandas的DataFrame方法创建一个DataFrame对象,如下所示:

import pandas as pd
data = {'name': ['John', 'Mary', 'Bob', 'Anna'], 'age': [23, 45, 12, 34], 'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df)

输出结果为:

   name  age gender
0  John   23      M
1  Mary   45      F
2   Bob   12      M
3  Anna   34      F
数据操作

Pandas提供了一些强大的数据操作功能,如数据筛选、排序、聚合等,让数据处理更加方便和高效。

import pandas as pd
data = {'name': ['John', 'Mary', 'Bob', 'Anna'], 'age': [23, 45, 12, 34], 'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)

# 选择数据
print(df[['name', 'age']])  # 选择指定列

print(df.loc[df['age'] > 30])  # 筛选年龄大于30的行

# 数据排序
print(df.sort_values(by='age'))  # 按年龄排序

# 数据聚合
print(df.groupby('gender').mean())  # 年龄平均值按性别分组
Pandas案例
需求

我们需要使用Pandas库对一份销售数据进行数据分析,以便为公司提供更好的销售策略。数据包含以下几列:

  • Order ID:订单编号
  • Product:产品名称
  • Quantity Ordered:订单数量
  • Price Each:商品单价
  • Order Date:订单日期
  • Purchase Address:购买地址
数据准备

我们可以使用Python的Requests库从网络上下载该销售数据集。

import requests

url = 'https://raw.githubusercontent.com/KeithGalli/Pandas-Data-Science-Tasks/master/SalesAnalysis/Sales_Data/Sales_April_2019.csv'
response = requests.get(url)

with open('sales_data.csv', 'wb') as f:
    f.write(response.content)
数据分析

导入数据

首先,我们需要将数据导入到Pandas中。

import pandas as pd

df = pd.read_csv('sales_data.csv')

探索数据

我们可以使用以下方法来了解数据的基本情况:

# 查看数据前10行
print(df.head(10))

# 查看数据形状(行数,列数)
print(df.shape)

# 查看数据结构
print(df.info())

# 查看数据统计信息
print(df.describe())

数据清洗

我们需要对数据进行清洗以便进行下一步的分析。

# 删除NaN值
df.dropna(inplace=True)

# 处理Order Date列
df['Order Date'] = pd.to_datetime(df['Order Date'])
df['Order Month'] = df['Order Date'].dt.month
df['Order Hour'] = df['Order Date'].dt.hour

# 处理Price Each列
df['Price Each'] = pd.to_numeric(df['Price Each'])

数据分析

接下来,我们根据需求进行数据分析。

# 计算总销售额
df['Sale Total'] = df['Quantity Ordered'] * df['Price Each']

# 分析最佳销售月份
sales_by_month = df.groupby('Order Month')['Sale Total'].sum()
print(sales_by_month)

# 分析最佳销售时间
sales_by_hour = df.groupby('Order Hour')['Sale Total'].sum()
print(sales_by_hour)

# 分析最畅销的产品
popular_products = df.groupby('Product')['Quantity Ordered'].sum().sort_values(ascending=False)
print(popular_products)
结论

在本文中,我们介绍了Pandas库以及其基本使用方法,同时给出了一个实际的案例,帮助程序员学会如何使用Pandas库来进行数据处理和分析。通过本文的学习,相信读者已经掌握了Pandas库的基础知识,并可以利用该库进行数据处理和分析。