【问题标题】:Python: Iterate Over Year and Month in DatetimeIndexPython:在 DatetimeIndex 中迭代年份和月份
【发布时间】:2021-10-20 07:39:24
【问题描述】:

我有两个 DataFrame:

df1:
                  A    B 
Date
01/01/2020        2    4
02/01/2020        6    8


df2:
                  A    B
Date
01/01/2020        5    10

我想得到以下内容:

df3:
                  A    B 
Date
01/01/2020        10   40
02/01/2020        30   80

我想要的是根据 DatetimeIndex 中的年份和月份将列条目相乘。但我不确定如何迭代日期时间。

【问题讨论】:

标签: python pandas dataframe datetime indexing


【解决方案1】:

使用to_numpy():

df3=pd.DataFrame(df1.to_numpy()*df2.to_numpy(),index=df1.index,columns=df1.columns)

df3的输出:

             A  B
Date        
01/01/2020  10  40
02/01/2020  30  80

【讨论】:

    【解决方案2】:

    您可能需要reindex

    df1.index = pd.to_datetime(df1.index,dayfirst=True)
    df2.index = pd.to_datetime(df2.index,dayfirst=True)
    df2.index = df2.index.strftime('%Y-%m')
    df1[:] *= df2.reindex(df1.index.strftime('%Y-%m')).values
    
    df1
    Out[529]: 
                 A   B
    Date              
    2020-01-01  10  40
    2020-01-02  30  80
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多