吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1424|回复: 7
收起左侧

[Python 原创] pandas时间日期数据处理

  [复制链接]
天空宫阙 发表于 2024-5-14 20:04
本帖最后由 天空宫阙 于 2024-5-14 20:04 编辑

pandas时间日期数据处理

将字符串转变为datetime类型pd.to_datetime

该函数的方法既可以是字符串,也可以是列表,也可以是series

pd.to_datetime('2018-10-26 12:00 -0500')
pd.to_datetime(['2018-10-26 12:00 -0500', '2018-10-26 13:00 -0500'])
df['WorkingDate'] = pd.to_datetime(df['WorkingDate']) 

按指定要求生成时间series

date_series = pd.date_range(start='2024-5-14 8:20',end='2024-5-14 19:20',freq='10min')

freq别名见文末

按时间筛选

  1. 对于DatetimeIndex可以直接使用loc索引  
  2. 非时间类型的索引(非DatetimeIndex)可以使用between筛选时间
import pandas as pd 
import numpy as np

date_series = pd.date_range(start='2024-5-14 8:20',end='2024-5-14 19:20',freq='10min')
df = pd.DataFrame(np.ones((67,2)),
                  index=date_series, columns=['A', 'B'])

# 时间类型的index
df_result = df.loc['2024-5-14 8:20':'2024-5-14 9:20']
print(df_result)

df2 = df.reset_index() # df2 非时间类型的index
filter1 = df2['index'].between('2024-5-14 8:20','2024-5-14 9:20')
filter1_df = df2.loc[filter1,['A','B']]
print(filter1_df)

数据按时间降采样 resample

当数据采样过于密集,统计需要按小时,按天,按月等聚合时可以使用resample

import pandas as pd 
import numpy as np

date_series = pd.date_range(start='2024-5-14 8:20',end='2024-5-14 19:20',freq='10min')
df = pd.DataFrame(np.ones((67,2)),
                  index=date_series, columns=['A', 'B'])
#降采样
result1 = df['A'].resample('H').sum() # 按小时降采样
result2 = df['A'].resample('H').count()
print(result1)
print(result2)

日期格式转字符串

df['time'].apply(lambda x:x.strftime('%Y-%m-%d'))

常见freq

https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases

Alias    Description
B        business day frequency
C        custom business day frequency
D        calendar day frequency
W        weekly frequency
M        month end frequency
SM       semi-month end frequency (15th and end of month)
BM       business month end frequency
CBM      custom business month end frequency
MS       month start frequency
SMS      semi-month start frequency (1st and 15th)
BMS      business month start frequency
CBMS     custom business month start frequency
Q        quarter end frequency
BQ       business quarter end frequency
QS       quarter start frequency
BQS      business quarter start frequency
A, Y     year end frequency
BA, BY   business year end frequency
AS, YS   year start frequency
BAS, BYS business year start frequency
BH       business hour frequency
H        hourly frequency
T, min   minutely frequency
S        secondly frequency
L, ms    milliseconds
U, us    microseconds
N        nanoseconds

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a540584012 发表于 2024-5-14 21:28
稳定时间日期数据处理
玩机小白丶王 发表于 2024-5-14 23:13
 楼主| 天空宫阙 发表于 2024-5-15 07:56
玩机小白丶王 发表于 2024-5-14 23:13
虽然但是,这个放GPT不是能直接生成么

有时不知道相应的功能,不能说出准确的提示词,自然无法生成稳定的数据处理方法
lzy541541 发表于 2024-5-15 10:00
感觉不错  收藏一波
小xi西 发表于 2024-5-23 17:38
为什么python 3.10用不了pandas?
sai609 发表于 2024-9-4 10:59
数据集有日期和数据两个字段,均已经转为dtype: float64,但列表格式却为int
so有啥办法给int转换数据类型,不做就没法做下一步的做时间序列预测
yycvip 发表于 2024-9-18 20:03
感觉不错  顶一波
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 19:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表