取每个月的最大天数报错

我希望取每个月的最大天数代入下一个循环,但是取出来的只有一个最大值31,报错
###### ```python

我的代码
 {for month in range(1,13):
    houston_monthly=houston[houston['Month']==month]
    X=houston_monthly[['GHI','DNI','Temperature','Price']]
    C=X.corr()
    days = max(houston_monthly['Day'])
    GHI = np.zeros([24, days])
    Temp = np.zeros([24, days])
    DNI=np.zeros([24, days])
    rtp=np.zeros([24, days])
    c=np.zeros([24,3,3])
    for hour in range(24):
            GHI[hour] = houston_monthly[houston_monthly['Hour'] == hour]['GHI']/1000
            Temp[hour] = houston_monthly[houston_monthly['Hour'] == hour]['Temperature']
            DNI[hour] = houston_monthly[houston_monthly['Hour'] == hour]['DNI'] / 1000
            rtp[hour] = houston_monthly[houston_monthly['Hour'] == hour]['Price']
            c = np.corrcoef(np.array([GHI[hour],Temp[hour],DNI[hour],rtp[hour]]))}
```,

{---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/var/folders/1t/mwj66mvx0mv00rs70yc3hgk40000gn/T/ipykernel_14153/1750111386.py in <module>
     17     c=np.zeros([24,3,3])
     18     for hour in range(24):
---> 19             GHI[hour] = houston_monthly[houston_monthly['Hour'] == hour]['GHI']/1000
     20             Temp[hour] = houston_monthly[houston_monthly['Hour'] == hour]['Temperature']
     21             DNI[hour] = houston_monthly[houston_monthly['Hour'] == hour]['DNI'] / 1000

ValueError: could not broadcast input array from shape (28,) into shape (31,)} 

求指教应该怎么改?

你这好多变量看不到定义,不知道格式不好分析啊
按照你的代码
GHI是一个24xdays的矩阵,GHI[hour]是一个长度为days的数组,但是houston_monthly[houston_monthly['Hour'] == hour]按houston_monthly['Hour'] == hour取出来的行数明显与days是不同的,一个是28,一个是31,因为没有数据,也不知道你的意图,无法判断应该怎么改,两个长度一个是最大天数,一个是按小时数取的,除非你的数据中一个月每天每小时都有唯一一条数据,这两个数才会相等,否则的话总是会有偏差的,你可以按照这个思路去检查一下你的数据和代码,如果搞不明白,那请把数据附上来,把你的具体的目的描述一下

下月1日减去一天即可

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632