datetime 比较_python 数据分析中常用的时间--datetime操作

Python 中有time 模块和datetime模块,因为datetime使用的语法结构跟sql比较类型,所以,我选择了使用datetime。

datetime有以下几个类。总结来看,如下图。

a940d8372f2f3dd88f28fa183d9edff0.png

下面是实例方法,包含各类型的格式转化、时间计算

1. 时间格式转化

字符格式转化为时间格式

a='2020-03-30 14:32:47'
b=datetime.datetime.strptime(a,"%Y-%m-%d %H:%M:%S")

时间格式转化为字符格式

c=datetime.datetime.strftime(b,"%Y-%m-%d %H:%M:%S")

strptime、strftime之前经常记混,发现可以这样记忆:

strptime→ str point time ,str 指向time , 所以是 字符串 转化成时间

strftime→ str from time , 来自time 的 str,所以是 从time 转化为字符串

2. 加减一定的天数、小时

b+datetime.timedelta(hours=8) #输入
datetime.datetime(2020, 3, 30, 22, 32, 47) '01' #输出

3. 两个日期相减

dt2

输出的格式为datetime的格式

datetime.timedelta(days=10117, seconds=63635) ###输出

然后获取天数:

(b-dt2).days ##输入
10117 ##输出

如果你觉得想要知道多少像10117.4天这种带小数的结果:

round((b-dt2).days+(b-dt2).seconds/86400,2) #输入,秒换算为天,相加,并四舍五入
10117.74#输出

4. 第几周的计算

%U 一年中的星期数(00-53)星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

x选择2020年的第2个周日来试试

5f7af230b6ad6b0d149c5d413d3132a9.png
dt=datetime.datetime(2020,1,12,12,50,23) 
datetime.datetime.strftime(dt,"%W") ###星期一为星期的开始
'01' #输出

星期一为一周的第一天,周天为一周的最后一天,所以,12号为第一周的最后一天。

datetime.datetime.strftime(dt,"%U")##星期天为星期的开始
'02' #输出

星期天为一周的第一天,周一为一周的最后一天,所以,12号为第二周的第一天。

5. 星期几的计算

datetime.datetime.strftime(b,"%a") #输入
'Mon' #输出
datetime.datetime.strftime(b,"%A")#输入
'Monday'#输出

数字格式的星期几

datetime.datetime.strftime(b,"%u") #输入
'1''#输出

6. 全部时间格式

datetime.datetime.strftime(b,"%c") )#输入
'Mon Mar 30 14:32:47 2020' #输出,展示星期月份和具体的时间

7. 一年内的第几天

datetime.datetime.strftime(b,"%j")#输入
'090' #输出,可使用int()或者float()转化为数值

8. 减去一定的月份

datetime不支持进行月份的相减,需要使用到另外一个模块dateutil

import datetime
from dateutil.relativedelta import   relativedelta
datetime_now =datetime.datetime(2020,   3, 30, 14, 32, 47)
datetime_1_month_before = datetime_now   - relativedelta(months=1)
print( datetime_1_month_before)

输出:2020-02-29 14:32:47

可以看到,这个模块支持跨月份,并且考虑到了月末天数的特殊情况。

另附:日期格式化符号

0683f8c78e12636e94c69ff98af64eeb.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们可以采用Python的pandas和matplotlib库进行营业数据分析。下面我介绍一下具体的实现步骤。 首先,我们需要准备一份销售数据的CSV文件,例如以下示例数据: ``` 日期,商品名称,销售额,销售量 2021-01-01,商品A,1000,10 2021-01-01,商品B,1500,15 2021-01-02,商品A,1200,12 2021-01-02,商品B,1800,18 2021-01-03,商品A,1300,13 2021-01-03,商品B,1900,19 ``` 然后,我们可以使用pandas库将CSV文件读取到数据框,并进行一些数据清洗和处理。代码如下: ```python import pandas as pd # 读取CSV文件到数据框 df = pd.read_csv('sales_data.csv') # 将日期列转换为datetime类型 df['日期'] = pd.to_datetime(df['日期']) # 添加月份列 df['月份'] = df['日期'].dt.month # 添加销售额/销售量单价列 df['销售额单价'] = df['销售额'] / df['销售量'] df['销售量单价'] = df['销售量'] / df['销售额'] ``` 接着,我们可以使用pandas的聚合函数对数据进行汇总和统计。例如,我们可以按月份汇总销售额和销售量,代码如下: ```python # 按月份汇总销售额和销售量 df_monthly = df.groupby('月份').sum()[['销售额', '销售量']] ``` 然后,我们可以使用matplotlib库绘制图表,例如绘制销售额和销售量的折线图,代码如下: ```python import matplotlib.pyplot as plt # 绘制销售额和销售量的折线图 plt.plot(df_monthly.index, df_monthly['销售额'], label='销售额') plt.plot(df_monthly.index, df_monthly['销售量'], label='销售量') # 添加图表标题和标签 plt.title('销售额和销售量月度趋势') plt.xlabel('月份') plt.ylabel('金额/数量') plt.legend() # 显示图表 plt.show() ``` 最后,我们可以通过对数据框进行筛选和排序,来查找一些有用的信息。例如,我们可以查找销售额单价最高的商品,代码如下: ```python # 查找销售额单价最高的商品 df_top = df.sort_values('销售额单价', ascending=False).head(1) # 输出商品名称和销售额单价 print(f"销售额单价最高的商品是{df_top.iloc[0]['商品名称']}, 单价为{df_top.iloc[0]['销售额单价']:.2f}") ``` 以上就是一个简单的营业数据分析案例,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值