【问题标题】:create and fill a dataframe with dates as index and fill with arrys in pandas创建并填充以日期为索引的数据框,并在 pandas 中填充数组
【发布时间】:2021-11-22 07:42:03
【问题描述】:

我想创建一个以日期为索引的数据框,并用两个数组填充数据框。我尽量让自己清楚。

我有两个数组:

import numpy as np
qq = np.zeros(24)
hh = np.zeros(24) 

它们指的是特定一天中的每个小时。我想把它放在一个数据框中。这是我尝试过的:

delta = pd.Timedelta("1 days")
start = '2018-01-01 00:00:00'
start_date = pd.to_datetime(start,format='%Y-%m-%d %H:%M:%S')


df = pd.DataFrame([qq,hh] ,columns=['Qout','h'],
                  index=pd.date_range(start_date, periods=24, freq='H'))

这是我的解决方案:

df['Qout'] = qq
df['h']    = hh

你怎么看?

谢谢

【问题讨论】:

    标签: python arrays pandas dataframe date


    【解决方案1】:

    这是我想出的,这应该会给你想要的输出。请记住,我在创建数据框时正在转置。我不确定您遇到了什么样的错误,但我得到了一个将数组作为列读取的错误,因此我转置了数据帧。

    import numpy as np
    qq = np.zeros(24)
    hh = np.zeros(24)
    df = pd.DataFrame([qq,hh,pd.date_range(start_date, periods=24, freq='H')]).T
    df.columns = ['Qout','h','Dates']
    df = df.set_index('Dates')
    

    【讨论】:

      【解决方案2】:

      如果您希望所有 DataFrame 中都为 0,则可以改用它

      start = '2018-01-01 00:00:00'
      start_date = pd.to_datetime(start,format='%Y-%m-%d %H:%M:%S')
      df = pd.DataFrame(0,index=pd.date_range(start_date, periods=24, freq='H'),columns = ['Qout','h'])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-17
        • 2018-08-13
        • 2022-06-13
        • 1970-01-01
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 2020-11-20
        相关资源
        最近更新 更多