numpy python error UFuncTypeError:ufunc“add”不包含具有签名匹配类型的循环

inkz8wg9  于 2023-06-23  发布在  Python
关注(0)|答案(1)|浏览(118)

我是python新手,我在执行这段代码时遇到了一个问题:

import numpy as np

DatetimeIndex(['1990-03-31', '1990-06-30', '1990-09-30', '1990-12-31',
               '1991-03-31', '1991-06-30', '1991-09-30', '1991-12-31',
               '1992-03-31', '1992-06-30',
               ...
               '2015-09-30', '2015-12-31', '2016-03-31', '2016-06-30',
               '2016-09-30', '2016-12-31', '2017-03-31', '2017-06-30',
               '2017-09-30', '2017-12-31'],
              dtype='datetime64[ns]', length=112, freq='Q-DEC')
proj_index = np.char.array(proj_index.year)+'Q'+np.char.array(proj_index.quarter)`

预期结果:proj_index数组将是[....'2017 Q1','2017 Q2','2017 Q3'...]
下面是我得到的错误:TypeError:只能将str(不是“numpy.bytes_”)连接到str。
为了解决这个问题,我尝试了这些步骤:

`f=np.char.array(proj_index.year)
k=f.decode()
b=np.char.array(proj_index.quarter)
y=b.decode()
m=k+'Q'+y`

然后我又得到了另一个错误:UFuncTypeError:ufunc 'add'不包含签名匹配类型(dtype('<U4'),dtype('<U1'))-> None的循环
如果有人能帮我的话那就太好了请提前谢谢你

inb24sb2

inb24sb21#

假设输入是proj_index

import pandas as pd

proj_index = pd.date_range("1990-03-31", "2017-12-31", freq="Q-DEC") # or an equivalent

您可以将to_periodPeriodIndexQuarterfrequency一起使用:

out = proj_index.to_period("Q") # or pd.PeriodIndex(proj_index, freq="Q")

输出:

PeriodIndex(['1990Q1', '1990Q2', '1990Q3', '1990Q4', '1991Q1', '1991Q2',
             '1991Q3', '1991Q4', '1992Q1', '1992Q2',
             ...
             '2015Q3', '2015Q4', '2016Q1', '2016Q2', '2016Q3', '2016Q4',
             '2017Q1', '2017Q2', '2017Q3', '2017Q4'],
            dtype='period[Q-DEC]', length=112)

相关问题