提问人:Amit Kumar 提问时间:2/14/2022 最后编辑:Amit Kumar 更新时间:2/14/2022 访问量:89
使用日期进行 Pandas 数据操作
Pandas data manipulation with date
问:
我有两个 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 |
答:
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
评论