📅  最后修改于: 2023-12-03 15:34:03.188000             🧑  作者: Mango
Pandas是一个基于NumPy的开源数据处理库,提供了高效数据操作功能,特别是可对表格型数据进行操作,包括增删改查等操作。本系列将介绍Pandas库的基本使用方法并附上一个实际的案例,帮助程序员学习如何使用这一强大的数据处理库。
Pandas有两种主要数据类型:Series和DataFrame。Series是一维的数据结构,类似于数组或列表,其中每一个元素都有一个标签(索引)。DataFrame则是二维的表格型数据结构,由多个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
使用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库对一份销售数据进行数据分析,以便为公司提供更好的销售策略。数据包含以下几列:
我们可以使用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库的基础知识,并可以利用该库进行数据处理和分析。