pandas - 合并 groupby ffill 然后 bfill 的代码
问题描述
在下面的代码中,我想ffill
按照代码bfill
来做item_name
:
import pandas as pd
import numpy as np
df=pd.DataFrame({"date":['1/1/2021','1/2/2021','1/3/2021','1/4/2021','1/5/2021','1/1/2021','1/2/2021','1/3/2021','1/4/2021','1/5/2021'],
"item_name":["bracelet","bracelet","bracelet","bracelet","bracelet","earring","earring","earring","earring","earring"],
"quantity_sold":[np.nan,np.nan,3,4,np.nan,100,200,300,400,500]})
df['date']=pd.to_datetime(df['date'])
display(df)
#sort on the right fields before the calculation
df=df.sort_values(['item_name','date'])
#sum of quantity for last 3 days (curr_day-2,curr_day-1,curr_day)
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].ffill()
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].bfill()
df
问题是,有没有办法将以下代码从两行组合成一行?
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].ffill()
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].bfill()
解决方案
而不是在两行单独的行中写这个: -
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].ffill()
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].bfill()
通过链接方法将其写在一行中:-
df['quantity_sold']=df.groupby("item_name")['quantity_sold'].ffill().bfill()
推荐阅读
- java - 如何检查输入的小写字母数量的密码?
- python - 登录/索引处不存在模板
- swift - 我应该如何在 Metal 中渲染文本?
- ruby-on-rails - 对 local_time gem 安装说明 ruby on rails 6 感到困惑
- r - 总结期间出错:“closure”类型的“envir”参数无效
- reactjs - 反应js回调函数
- reactjs - useContext 与 useRef 和 useState
- google-app-engine - 谷歌语音到文本节点记录 lpcm16 流错误
- python - 这些有什么不同?TypeError:“int”对象不可迭代
- c++ - 为什么我在课程课程中收到方法“TopStudents”的错误?