使用日期进行 Pandas 数据操作

Pandas data manipulation with date

提问人:Amit Kumar 提问时间:2/14/2022 最后编辑:Amit Kumar 更新时间:2/14/2022 访问量:89

问:

我有两个 df,我想在另一个的基础上操纵一个。我的 df1 看起来像这样 日期格式为 mm-dd-yyyy

日期 col_1 col_2 col_3 = col_2/col_1
01/01/2021 100 110 1.1
02/01/2021 110 110 1
03/01/2021 120 132 1.1
04/01/2021 100 120 1.2

现在我的另一个数据框如下所示

日期 col_1 col_2
01/01/2021 一个 110
01/01/2021 B 110
01/01/2021 C 132
01/01/2021 D 120
02/01/2021 一个 110
02/01/2021 B 110
02/01/2021 C 132
03/01/2021 D 120

现在我想在日期上将 df1 的“col_3”乘以 df2 的“col_2”。请帮忙

我试过了这个

def (df1,df2,ind) #ind is integer for month
    df2['col_2'] = df2['col_2'] * df1['col_3'].iloc(ind-1)
    return df2

我想要的输出如下所示

日期 col_1 col_2
01/01/2021 一个 121
01/01/2021 B 121
01/01/2021 C 145.2
01/01/2021 D 132
02/01/2021 一个 110
02/01/2021 B 110
02/01/2021 C 132
03/01/2021 D 132
Python Pandas DataFrame 日期 数据操作

评论

0赞 sammywemmy 2/14/2022
请添加您的预期输出

答:

1赞 Corralien 2/14/2022 #1

IIUC,使用列作为两个数据帧的索引,然后应用您的操作:Date

df2['col_3'] = df2.set_index('Date')['col_2'] \
                  .mul(df1.set_index('Date').reindex(df2['Date'])['col_3']).values
print(df2)

# Output
         Date col_1  col_2  col_3
0  01/01/2021     A    110  121.0
1  01/01/2021     B    110  121.0
2  01/01/2021     C    132  145.2
3  01/01/2021     D    120  132.0
4  02/01/2021     A    110  110.0
5  02/01/2021     B    110  110.0
6  02/01/2021     C    132  132.0
7  03/01/2021     D    120  132.0

评论

0赞 Amit Kumar 2/18/2022
你能帮我解决这个问题吗?Question_stackof@Corralien