pandas 日期处理
来源:互联网 发布:个人如何注册淘宝店铺 编辑:程序博客网 时间:2024/05/22 22:48
1、时间字符串,提取日期、小时
USER_ID SHOP_ID TIME_STA DATE HOUR0 22127870 1862 2015-12-25 17:00:00 2015-12-25 171 3434231 1862 2016-10-05 11:00:00 2016-10-05 11df['DATE'] = pd.to_datetime(df['TIME_STA']).dt.datedf['HOUR'] = pd.to_datetime(df['TIME_STA']).dt.hour
2、日期转换为字符串 DATE 转换为TIME_STA
pd.to_datetime(df['DATE'])
datetime.datetime.strptime('20150626','%Y%m%d') Out[25]: datetime.datetime(2015, 6, 26, 0, 0)(datetime.datetime.strptime('20150626','%Y%m%d') + datetime.timedelta(days=1)).date()Out[26]: datetime.date(2015, 6, 27)str((datetime.datetime.strptime('20150626','%Y%m%d') + datetime.timedelta(days=1)).date())Out[27]: '2015-06-27'str(datetime.datetime.strptime('20150626','%Y%m%d') )Out[28]: '2015-06-26 00:00:00'
PAYNW_TAB.columns = [str((datetime.datetime.strptime('20150626','%Y%m%d') + datetime.timedelta(days=x)).date()) for x in range( PAYNW_TAB.shape[1])]
3、dayofyear、dayofweek
#销售日期:20140213train['day'] = train['销售日期'].map(lambda x: str(x)[-2:]).astype(int)train['sale_m'] = train['销售日期'].map(lambda x: str(x)[4:6]).astype(int) # 1234train['week'] = train['销售日期'].map(lambda x: pd.to_datetime(str(x)).dayofweek+1)
# time : 20141118 18data['time'] = pd.to_datetime(data['time']) # 18 转换为 18:00:00data['dayofyear'] = data['time'].dt.dayofyear # pandas 用天数来表示日期,一年中的第*天dindex = data[data['dayofyear'] == pd.to_datetime('2014-12-12').dayofyear].index.values # 取其索引值data = data.drop(dindex,axis=0,inplace = False)
4、两日期间相隔的天数、秒数
import datetimed1 = datetime.datetime.strptime('2015-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')d2 = datetime.datetime.strptime('2015-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')delta = d1 - d2
5、相隔的小时数
df_time = df_part_1[df_part_1['time'] >= np.datetime64('2014-11-27')]df_time['diff_hours'] = df_time['diff_time'].apply(lambda x: x.days * 24 + x.seconds//3600) # //:取整
6、今天往后n天的日期
mport datetimenow = datetime.datetime.now()delta = datetime.timedelta(days=3)n_days = now + deltaprint n_days.strftime('%Y-%m-%d %H:%M:%S') 输出:2017-11-18 19:16:34
7、生成日期索引,及相应星期 date_range(start=' ',end=' ',freq=‘D’)、weekday() ;D表示天,freq='12H',则每12小时计算一次,eg:
DatetimeIndex(['2016-10-28 00:00:00', '2016-10-28 12:00:00', '2016-10-29 00:00:00', '2016-10-29 12:00:00', '2016-10-30 00:00:00', '2016-10-30 12:00:00', '2016-10-31 00:00:00'], dtype='datetime64[ns]', freq='12H')
timerange = pd.date_range('2016-1-1', '2016-10-31', freq='D')weeknum = timerange.weekday
Out[18]: Int64Index([4, 5, 6, 0], dtype='int64')
8、获取日期列表
import pandas as pdimport datetimedef datelist(start, end): start_date = datetime.date(*start) end_date = datetime.date(*end) result = [] curr_date = start_date while curr_date != end_date: ymd="%04d%02d%02d" % (curr_date.year, curr_date.month, curr_date.day) result.append(int(ymd)) curr_date += datetime.timedelta(1) result.append(int(ymd)) return resultalltime_set=set(datelist((2016, 7, 1), (2016, 10, 31)))alltime_set
{20160701, 20160702, 20160703, 20160704, 20160705, 20160706,..., 20161030}
9、以为可以在读取时直接解析日期,见另一篇 读取csv、pickle的博客
阅读全文
0 0
- pandas 日期处理
- pandas 快速处理 date_time 日期格式
- python+pandas+时间、日期以及时间序列处理
- python-pandas 时间日期的处理(下篇)
- python科学计算笔记(十)pandas中时间、日期以及时间序列处理
- python,pandas处理
- Pandas处理表格
- pandas处理数据例子
- Pandas处理csv表格
- Pandas处理csv表格
- pandas处理缺失数据
- Pandas 缺省值处理
- pandas处理字符串1
- pandas 处理数据概括
- pandas处理缺失值
- Pandas 处理 dummy variable
- pandas处理excel数据经验
- pandas处理数据加载、存储
- lucene query
- PHAsset获得视频URL,遇到的一些问题
- leetcode36. Valid Sudoku
- NC休假、加班、销假合并报表sql
- sos
- pandas 日期处理
- python操作csv文件范例
- hsf入门
- Oracle 学习之窗口函数(over)
- iOS开发之App从点击到启动
- 爬取豆瓣TOP250电影的评分、评价人数、短评等信息,并在其保存在sql数据库中。
- Spring依赖注入
- Ueditor 表情本地化
- UTC 与 Unix时间戳