添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  1. 提取全日期字段中的日期和时间项
data4[




    
"订单生成时间"] = pd.to_datetime(data4["订单生成时间"])
data4["时间"] = data4["订单生成时间"].dt.hour   #提取时间
data4["日期"] = data4["订单生成时间"].dt.date   #提取日期

获取某个日期之前/后或时间区间的数据

dataframe的.truncate()函数可以截取某个时期之前或之后的数据,或者某个时间区间的数据,进行统计分析。
注意事项:
使用.truncate()函数对df进行数据集截取,遇到截取数据不符合预期,且若时间序列无序会抛出异常
解决措施:
在使用.truncate()函数对df进行数据集截取之前,需要先使用df=df.sort_values(‘date’)‘date’列按时间先后进行排序,然后使用df = df.set_index('date')将“date”设置为index,最后再使用df_last=df.truncate(after=‘2019-05-22 16:00:00’)提取指定时间节点之前的数据。
函数语法:

DataFrame.truncate(before=None, after=None, axis=None, copy=True)

参数说明:

before:取值范围:date,string,int,是指截断此索引值之前的所有行
after:取值范围:date,string,int,是指截断此索引值后的所有行
axis:取值范围:{0或’index’,1或’columns’}(可选),是指轴截断。 默认情况截断索引(行)。
copy:取值范围:boolean,默认为True,返回截断部分的副本

常见用法:

  1. 获取2014年以后的数据
 print(df.truncate(before='2014').head())
  1. 获取2013-11月之前的数据,用after
 print(df.truncate(after='2013-11').head())
  1. 获取2016-02月以后的数据,用before
 print(df.truncate(before='2016-02').head())
  1. 获取2019-05-22日16:00:00时之前的数据
 df=data.truncate(after='2019-05-22 16:00:00')
  1. 获取指定时间区间的数据
 df=df['2016-02-2':'2016-02-10']
  1. 获取指定时间区间的数据
 df=df['2016-02-2':'2016-02-10']

python 获取当前时间及前一天时间

import datetime
from pandas.tseries.offsets import Day
now_time =datetime.datetime.now()#获取当前时间
yes_time = (now_time -1*Day()).strftime('%Y-%m-%d')#格式化
print(yes_time)

pandas的日期时间间隔运算

import datetime
from datetime import timedelta
df_189[‘订单生成日期’]=pd.to_datetime(df_189[‘订单生成日期’]) #修改“订单生成时间”的数据类型
df_189[‘订单生成日期’]+timedelta(days=1) #后一天的日期
df_189[‘订单生成日期’]-timedelta(days=3) #前3天的日期

选取指定时间范围内/外的数据

   ##提取3日前日期和7日前日期
now_time =datetime.datetime.now()#获取当前时间
yes_time_7 = (now_time -7*Day()).strftime('%Y-%m-%d')#格式化
yes_time_3= (now_time-3*Day()).strftime("%Y-%m-%d")
print(yes_time_7)
print('='*50)
print(yes_time_3)
df_189['订单生成日期']=pd.to_datetime(df_189['订单生成日期'])  #修改“订单生成时间”的数据类型
df_189_7= df_189[df_189['订单生成日期']==yes_time_7]
df_189_3= df_189[df_189['订单生成日期']==yes_time_3]
print(df_189_7.info())
 #选取该错误数据对应的时间范围外的数据,多个条件时 '|'代表'或','&'代表'且'
 a= df_189[df_189['订单生成日期']=='2019-06-23']   #筛选2019-06-23的数据

利用pandas计算DataFrame两列日期的间隔小时数

import pandas as pd
#方法一:
#先利用to_datetime转换为时间格式,tm列的数据形式为'yyyy-MM-dd HH:mm:ss'
df['tm_1'] = pd.to_datetime(df['tm_1'])
df['tm_2'] = pd.to_datetime(df['tm_2'])
#利用".dt.seconds"转换为秒,除以相对于的间隔数得到分钟、小时等
df['diff_time'] = (df['tm_1'] - df['tm_2']).dt.seconds/60
#利用round函数可进行四舍五入
df['diff_time'] = round(df['diff_time'])
#方法二,日期相减变为小时;变为天的话将h替换为D即可:
df['diff_time'] = (df['tm_1'] - df['tm_2']).values/np.timedelta64(1, 'h')
#Dataframe中的时间是不能直接进行相加减的,所以需要先用pandas的to_datetime()方法,转化成时间格式进行加减,然后再转换成df格式
#delta=df1['Time_end']-df1['Time_start'] #直接报错TypeError: unsupported operand type(s) for -: 'str' and 'str'
#日期相减变为小时;变为天的话将h替换为D即可:
sf_df['交易周期']=pd.DataFrame((pd.to_datetime(sf_df['交易完成时间'])-pd.to_datetime(sf_df['订单生成时间'])).values/np.timedelta64(1,'h'))

numpy中-Datetimes and Timedeltas的使用

日期格式转换

在numpy中,使用np.datetime64('2017-08' , 'D')可以很方便的将字符串转换成日期类型

import numpy as np
np.datetime64('2017-08-06')  #精确到日
numpy.datetime64('2017-08-06')
np.datetime64('2018-08')   #精确到月
numpy.datetime64('2018-08')
# 通过参数,强制将数据格式转为我们想要的粒度
np.datetime64('2017-08','D')  #转化到日
numpy.datetime64('2017-08-01')
np.datetime64('2017-08','Y')  #转化到年
numpy.datetime64('2017')
a = np.array(['2017-07-01','2017-07-15','2017-08-01'],dtype = np.datetime64)  #列表日期
array(['2017-07-01', '2017-07-15', '2017-08-01'], dtype='datetime64[D]')
# 我们也可以使用arange函数初始化数组
b = np.arange('2017-08-01','2017-09-01',dtype = np.datetime64)
array(['2017-08-01', '2017-08-02', '2017-08-03', '2017-08-04',
       '2017-08-05', '2017-08-06', '2017-08-07', '2017-08-08',
       '2017-08-09', '2017-08-10', '2017-08-11', '2017-08-12',
       '2017-08-13', '2017-08-14', '2017-08-15', '2017-08-16',
       '2017-08-17', '2017-08-18', '2017-08-19', '2017-08-20',
       '2017-08-21', '2017-08-22', '2017-08-23', '2017-08-24',
       '2017-08-25', '2017-08-26', '2017-08-27', '2017-08-28',
       '2017-08-29', '2017-08-30', '2017-08-31'], dtype='datetime64[D]')

日期的计算

在numpy中,我们可以进行简单的日期计算

# 两个日期相减,会得到相差的天数
np.datetime64('2017-08-03') - np.datetime64('2017-07-15')
numpy.timedelta64(19,'D')
# 这里日期可以直接减去对应的天数
np.datetime64('2017-08-03') - np.timedelta64(20,'D')
#这里日期的粒度必须保证一样,一个是D,一个是M,是不可以相减的
np.datetime64('2017-08-03') - np.timedelta64(1,'M')
TypeError: Cannot get a common metadata divisor for NumPy datetime metadata [D] and [M] because they have incompatible nonlinear base time units
np.datetime64('2017-08') - np.timedelta64(1,'M')
numpy.datetime64('2017-07')
(np.datetime64('2014-10-30 23:00:00') - np.datetime64('2014-10-21 00:00:00'))  #按秒计时
(np.datetime64('2014-10-30 23:00:00') - np.datetime64('2014-10-21 00:00:00'))/np.timedelta64(1, 'h')   #计算时间差,并转为小时
239.0
#计算终止时间-初试时间,转为小时格式,最后格式设置为整型。np.floor((x - start_hour) / np.timedelta64(1, 'h')).astype(np.uint16)
np.floor((np.datetime64('2014-10-30 23:00:00') - 
          np.datetime64('2014-10-21 00:00:00'))/np.timedelta64(1, 'h')).astype(np.uint16)
                    Pandas处理日期数据的常见操作集锦数据读取及整理1.1 Series的创建方法数据读取及整理将数据类型转换为日期类型 df['date'] = pd.to_datetime(df['date'])将date设置为index df = df.set_index('date')获取某年的数据 print(df['2010'].head())获取某月的数据 p...
pd.to_datetime    把时间字符串转换为时间格式
pd.to_timedelta   可以把时间差转换为timedelta格式
.dt.total_seconds()  可以计算时间差的总秒数
1.把时间字符串转换为datetime格式
df['起始时间'] = pd.to_datetime(df['起始时间'])
df['终止时间'] = pd.to_datetime(df['终止时间'])
2.计算时间差
df['时间差'] = df['终止时间'] - df['起始时间
				
由于在Pandas中经常要处理到时间序列数据,需要把一些object或者是字符、整型等某列进行转换为pandas可识别的datetime时间类型数据,方便时间的运算等操作。基于前两篇文章的基础: 一文速学-Pandas中DataFrame转换为时间格式数据处理一文速学-Pandas处理时间序列数据操作详解 在这两篇文章中基本把pandas操作时间类型数据的一些常规操作都有提及和展示,作为重要相关函数to_datetime(),该函数参数值得单独拿出来讲一讲,可以省去很多转换之后的BUG错误。基本语法:
Pandas基础 Pandas是基于Numpy的库,但功能更加强大,Numpy专注于数值型数据操作,而Pandas对数值型,字符串型等多种格式的表格数据都有很好的支持。 1.数据结构(Series,DataFrame,Panel) 2.索引操作 3.数据运算 4.层次化索引 5.可视化(暂时忽略) 6.示例1 7.外部数据的读取与存储(csv,txt,json,excel,数据库,web数据) 8.示例2 9.数据清洗与整理 10.示例3 11.数据分组与聚合 12.示例4 13.时间序列 数据结构 # Pandas 采用了很多Numpy的代码风格,但Pandas是用来处理
提取日期中的信息(输出为int类型) # 提取日期中的年/月/日/小时/分钟 df2['year'] = pd.to_datetime(df2['comment_Date']).dt.year df2['ye
### 回答1: 可以使用pandas库读取csv文件并进行数据处理。使用pandas.read_csv()函数可以读取csv文件并将其存储在pandas DataFrame中。例如: import pandas as pd data = pd.read_csv("data.csv") 读取完csv文件后,可以使用DataFrame的各种函数进行数据处理,如筛选、排序、统计等。最后使用to_csv函数存储到新的csv文件中 data.to_csv("new_data.csv",index=False) ### 回答2: Python pandas是一个数据处理库,其灵活的数据结构和数据分析能力使得它在数据处理和分析领域中受到广泛关注。其中的CSV(Comma Separated Value,逗号分隔值)文件也是广泛使用的一种数据格式。 要使用pandas处理CSV文件,需要先安装pandas库。在安装好pandas库之后,可以使用read_csv()函数将CSV文件读取到pandas的DataFrame对象中进行处理。read_csv()函数有各种不同的参数选项,用于读取不同格式的CSV文件。 常见的CSV文件可以包含各种数据类型,包括字符串、整数、浮点数、日期等。pandas可以使用不同的数据类型来自动识别每一列的数据类型,也可以手动指定每一列的数据类型,从而更好地处理数据pandas提供了一些函数来对数据进行操作,例如dropna()函数可以删除包含缺失值的行或列,fillna()函数可以用指定值填充缺失值,groupby()函数可以将数据按照指定的列进行分组。 另外,pandas还可以将数据保存到CSV文件中,使用to_csv()函数可以将DataFrame对象写入到CSV文件中,并且可以指定文件的格式和各种参数。to_csv()函数可以保存到本地文件,也可以保存到在线存储库或数据库中。 总之,pandas是一个非常强大和灵活的数据处理库,可以方便地处理各种数据类型,包括CSV文件。使用pandas可以提高数据处理和分析的效率,并且具有较好的可读性和可维护性。 ### 回答3: Python pandas是一个开源数据分析库,它提供了丰富的数据结构和函数,可以高效地处理大规模数据,并提供方便的数据分析工具,如数据过滤、排序、分组、汇总、时序数据处理等。其中,pandas的CSV数据处理功能极为强大,让我们能够轻松地读取和处理CSV数据。 CSV(Comma Separated Values)是一种常见数据格式,通常由逗号分隔不同字段。pandas提供了read_csv()函数,可以读取CSV文件,并将其转换为pandas DataFrame对象,方便数据分析处理。下面是一个简单的读取CSV文件的代码示例: import pandas as pd data = pd.read_csv('data.csv') print(data.head()) 在读取CSV文件时,我们可以通过可选参数设置一些读取选项,例如分隔符、数据类型、缺失值表示方式等。例如,将分隔符设置为制表符: data = pd.read_csv('data.csv', delimiter='\t') 读取CSV数据后,我们可以使用pandas DataFrame对象的各种函数进行数据分析处理。例如,使用head()函数显示前若干行数据: print(data.head(10)) 使用describe()函数汇总数据的各种统计信息: print(data.describe()) 使用groupby()函数按照某个字段分组,并进行统计: grouped_data = data.groupby('category').sum() print(grouped_data) pandas还提供了to_csv()函数,可以将处理后的数据保存为CSV文件,便于后续处理和分析。 总之,pandas是一款强大的数据处理工具,对于需要处理大规模的CSV数据的工作来说,是一个非常实用的工具。合理利用pandas中的CSV数据处理功能,我们能够更轻松地处理和分析数据,提高工作效率。
derekpw: 两个疑问: 1、“在plt.show()之前一定不要忘了加plt.ioff(),如果不加,界面会一闪而过,并不会停留。”交互模式默认情况下不就是off的吗,为什么先要将其关闭啊? 2、我这边是先imshow、然后ion、最后show,这样的话图片可以正常持续显示,后面的代码也能继续执行。不知道有没有什么问题?谢谢 Django定时任务四种实现方法总结 qq_52257484: 使用Apscheduler跟djang-apscheduler有什么区别吗,使用Apscheduler要进行什么配置呢 PyTorch学习笔记——Tensor张量的数据类型的转化、Tensor常见的数据类型、快速创建Tensor laidone: tensor怎么转str呢 Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本) m0_73306197: wget : 操作已超时。 所在位置 行:1 字符: 1 + wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-20 ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebExce ption + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand 有没有大佬知道这是什么意思 Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本) m0_73306197: wget : 操作已超时。 所在位置 行:1 字符: 1 + wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-20 ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebExce ption + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand 有没有大佬知道这是什么意思