Python数据分析库pandas高级接口dt的使用

本文详细介绍Pandas中处理日期时间数据的API,包括提取日期、时间、星期、季度等信息,判断日期特性如是否为月初、年末或闰年,以及获取日期的英文名称。

Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷。今天翻阅pandas官方文档总结了以下几个常用的api。
**

1.dt.date 和 dt.normalize(),他们都返回一个日期的 日期部分,即只包含年月日。但不同的是date返回的Series是object类型的,normalize()返回的Series是datetime64类型的。 这里先简单创建一个dataframe。

**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*

2.dt.year、dt.month、dt.day、dt.hour、dt.minute、dt.second、dt.week (dt.weekofyear和dt.week一样)分别返回日期的年、月、日、小时、分、秒及一年中的第几周

*在这里插入图片描述

3.dt.weekday(dt.dayofweek一样)返回一周中的星期几,0代表星期一,6代表星期天,dt.weekday_name返回星期几的英文。

在这里插入图片描述
在这里插入图片描述

4.dt.dayofyear 返回一年的第几天,dt.quarter得到每个日期分别是第几个季度。

在这里插入图片描述

5.dt.is_month_start和dt.is_month_end 判断日期是否是每月的第一天或最后一天,可以将month换成year和quarter相应的判断日期是否是每年或季度的第一天或最后一天.

在这里插入图片描述

6.dt.is_leap_year 判断是否是闰年

在这里插入图片描述

7.dt.month_name() 返回月份的英文名称.

在这里插入图片描述

Pythonpandas是数据处理和分析的强大工具,其在Excel数据分析方面具有诸多实用方法和丰富的实例。 ### 方法 - **数据读取**:pandas提供了成熟的I/O工具,可用于读取Excel文件。使用`pd.ExcelFile`结合`parse`方法,能指定文件和要导入的工作表。示例代码如下: ```python import pandas as pd medicineData = pd.ExcelFile('d:/data/数据分析实例.xlsx') sales = medicineData.parse('药物销售单') ``` - **数据结构支持**:pandas的两个主要数据结构一维数组(Series)和二维数组(DataFrame),能很好地处理带行列标签的矩阵数据、时间序列数据等,为数据分析提供强力支撑,便于进行数据的增、查、改、删、合并、重塑、分组、统计分析等操作 [^2]。 - **数据清洗与转换**:可对数据进行清洗,如使用`dropna`方法删除缺失值;还能进行数据转换,例如将日期列转换为日期时间类型,并根据已有列计算新列 [^4]。 ```python df = df.dropna() df['Date'] = pd.to_datetime(df['Date']) df['Total_Sales'] = df['Quantity'] * df['Price'] ``` - **数据分析**:可以进行统计分析,如计算总和、分组求和等。例如计算总销售额和找出最畅销产品 [^4]。 ```python total_sales = df['Total_Sales'].sum() best_selling = df.groupby('Product')['Total_Sales'].sum().idxmax() ``` - **数据可视化**:结合`matplotlib`,能根据数据分析结果生成柱状图等可视化图表 [^4]。 ```python import matplotlib.pyplot as plt df.groupby(df['Date'].dt.day)['Total_Sales'].sum().plot(kind='bar') plt.title('Monthly Sales') plt.xlabel('Month') plt.ylabel('Total Sales') plt.show() ``` ### 实例 以下是一个完整的数据分析实例,示例数据为商品每日的销售数量及价格,分析出总的销售的额,和最畅销的产品,最后根据日期和销售额生成柱状图 [^4]。 ```python import pandas as pd import matplotlib.pyplot as plt from io import StringIO # 示例数据 data = """Date,Product,Quantity,Price 2024-01-01,C,10,20 2024-01-02,C#,15,25 2024-01-03,JAVA,12,30 2024-01-04,Python,20,20 2024-01-05,JavaScript,10,25""" # 将字符串数据转换为DataFrame df = pd.read_csv(StringIO(data)) # 数据探索 print("Initial Data:") print(df.head()) print("\nData Info:") print(df.info()) # 数据清洗 df = df.dropna() # 数据转换 df['Date'] = pd.to_datetime(df['Date']) df['Total_Sales'] = df['Quantity'] * df['Price'] # 数据分析 total_sales = df['Total_Sales'].sum() best_selling = df.groupby('Product')['Total_Sales'].sum().idxmax() print(f"\n总销售额: {total_sales}") print(f"最畅销的产品: {best_selling}") # 数据可视化 df.groupby(df['Date'].dt.day)['Total_Sales'].sum().plot(kind='bar') plt.title('Monthly Sales') plt.xlabel('Month') plt.ylabel('Total Sales') plt.show() ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值