Python 将两列合并为熊猫中的日期时间
我有一个这样的数据帧Python 将两列合并为熊猫中的日期时间,python,datetime,pandas,Python,Datetime,Pandas,我有一个这样的数据帧 df.head(6): year qtr measure 1990 3 1.813619 1990 4 1.809598 1991 1 1.814911 1991 2 1.808807 1991 3 1.820009 ... 我怎么可能结合“年”和“qtr”来获得熊猫中的datetime列?它可能只是季度的结束日期 谢谢。这是一个矢量化版本(只要您有numpy>=1.7): 编辑:添加解释: 首先,
df.head(6):
year qtr measure
1990 3 1.813619
1990 4 1.809598
1991 1 1.814911
1991 2 1.808807
1991 3 1.820009
...
我怎么可能结合“年”和“qtr”来获得熊猫中的datetime列?它可能只是季度的结束日期
谢谢。这是一个矢量化版本(只要您有numpy>=1.7): 编辑:添加解释: 首先,我从年份列中创建一个datetime64 numpy数组:
print (np.array(df.year.astype(str),dtype='datetime64[Y]')
['1990' '1990' '1991' '1991' '1991']
这些是年份级别的datetime64数据类型,因此,如果我们在第一个日期上加上一个月,它将是“1990-01”+1个月。因此,添加qtr*3将创建一个YYYY-MM日期,该日期太长了一个月:
print (np.array(df.year.astype(str),dtype='datetime64[Y]')
+ np.array(df.qtr*3,dtype='timedelta64[M]'))
['1990-10' '1991-01' '1991-04' '1991-07' '1991-10']
因此,如果我从“1990-10”中减去一天,我将得到上一个月末(这是您想要的月末):
这是一个矢量化版本(只要您的numpy>=1.7): 编辑:添加解释: 首先,我从年份列中创建一个datetime64 numpy数组:
print (np.array(df.year.astype(str),dtype='datetime64[Y]')
['1990' '1990' '1991' '1991' '1991']
这些是年份级别的datetime64数据类型,因此,如果我们在第一个日期上加上一个月,它将是“1990-01”+1个月。因此,添加qtr*3将创建一个YYYY-MM日期,该日期太长了一个月:
print (np.array(df.year.astype(str),dtype='datetime64[Y]')
+ np.array(df.qtr*3,dtype='timedelta64[M]'))
['1990-10' '1991-01' '1991-04' '1991-07' '1991-10']
因此,如果我从“1990-10”中减去一天,我将得到上一个月末(这是您想要的月末):
你能不能在数据框中添加一些代码,比如d={'year':yearlist,'qtr':quaterlist,'measure':measurelist}如果你多提供一些代码,v就可以解决这个问题。你能在数据框中添加一些代码,比如我们如何获取年份和qtr。.是这样的d={'year':yearlist,'qtr':quaterlist,'measure':measurelist}如果你提供多一点代码,v就能解决这个问题,谢谢!非常聪明的方法。您想解释一下为什么使用np.timedelta64(1,'D'),但得到了月底日期吗?是的,我刚刚编辑了我的答案以包含一个解释。谢谢!非常聪明的方法。您想解释一下为什么使用np.timedelta64(1,'D'),但得到了月底日期吗?是的,我刚刚编辑了我的答案以包含一个解释。